X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Ffiled%2Ffd_plugins.h;h=12d3baa256a778e3ac723ee315daa9a2d384abdd;hb=5450f5e38d6dd94600c7c35fedf7f9ccea3e7adb;hp=ad203e979eebd0fa9415ef91a90c2d22cb784a41;hpb=0ca2ce389d69164964486cd0dbbe0714f01ccdc6;p=bacula%2Fbacula diff --git a/bacula/src/filed/fd_plugins.h b/bacula/src/filed/fd_plugins.h index ad203e979e..12d3baa256 100644 --- a/bacula/src/filed/fd_plugins.h +++ b/bacula/src/filed/fd_plugins.h @@ -1,7 +1,7 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2007-2008 Free Software Foundation Europe e.V. + Copyright (C) 2007-2009 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. @@ -46,7 +46,7 @@ #define _FILE_OFFSET_BITS 64 #define _LARGEFILE_SOURCE 1 #define _LARGE_FILES 1 -#endif +#endif /* ! _BACULA_H */ #include @@ -56,7 +56,7 @@ #else #include "winconfig.h" #endif -#else +#else /* !HAVE_WIN32 */ #ifndef __CONFIG_H #include "config.h" #define __CONFIG_H @@ -144,9 +144,12 @@ typedef enum { bVarClient = 5, bVarJobName = 6, bVarJobStatus = 7, - bVarSinceTime = 8 + bVarSinceTime = 8, + bVarAccurate = 9, + bVarFileSeen = 10 } bVariable; +/* Events that are passed to plugin */ typedef enum { bEventJobStart = 1, bEventJobEnd = 2, @@ -181,10 +184,11 @@ void new_plugins(JCR *jcr); void free_plugins(JCR *jcr); void generate_plugin_event(JCR *jcr, bEventType event, void *value=NULL); bool send_plugin_name(JCR *jcr, BSOCK *sd, bool start); -void plugin_name_stream(JCR *jcr, char *name); +bool plugin_name_stream(JCR *jcr, char *name); int plugin_create_file(JCR *jcr, ATTR *attr, BFILE *bfd, int replace); bool plugin_set_attributes(JCR *jcr, ATTR *attr, BFILE *ofd); int plugin_save(JCR *jcr, FF_PKT *ff_pkt, bool top_level); +bool plugin_check_file(JCR *jcr, char *fname); #endif #ifdef __cplusplus @@ -202,9 +206,12 @@ typedef struct s_baculaFuncs { bRC (*getBaculaValue)(bpContext *ctx, bVariable var, void *value); bRC (*setBaculaValue)(bpContext *ctx, bVariable var, void *value); bRC (*JobMessage)(bpContext *ctx, const char *file, int line, - int type, time_t mtime, const char *fmt, ...); + int type, utime_t mtime, const char *fmt, ...); bRC (*DebugMessage)(bpContext *ctx, const char *file, int line, int level, const char *fmt, ...); + void *(*baculaMalloc)(bpContext *ctx, const char *file, int line, + size_t size); + void (*baculaFree)(bpContext *ctx, const char *file, int line, void *mem); } bFuncs; @@ -223,7 +230,7 @@ typedef enum { #define FD_PLUGIN_MAGIC "*FDPluginData*" -#define FD_PLUGIN_INTERFACE_VERSION 1 +#define FD_PLUGIN_INTERFACE_VERSION 4 typedef struct s_pluginInfo { uint32_t size; @@ -255,6 +262,7 @@ typedef struct s_pluginFuncs { bRC (*pluginIO)(bpContext *ctx, struct io_pkt *io); bRC (*createFile)(bpContext *ctx, struct restore_pkt *rp); bRC (*setFileAttributes)(bpContext *ctx, struct restore_pkt *rp); + bRC (*checkFile)(bpContext *ctx, char *fname); } pFuncs; #define plug_func(plugin) ((pFuncs *)(plugin->pfuncs))