]> git.sur5r.net Git - bacula/bacula/commitdiff
Plugin update
authorKern Sibbald <kern@sibbald.com>
Tue, 12 Feb 2008 15:59:55 +0000 (15:59 +0000)
committerKern Sibbald <kern@sibbald.com>
Tue, 12 Feb 2008 15:59:55 +0000 (15:59 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@6404 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/filed/fd-plugins.c
bacula/src/filed/fd-plugins.h
bacula/src/lib/plugins.c
bacula/src/plugins/fd/bpipe-fd.c

index e562df1a054de3eab5743d181845779ca6528e0d..f8a9bfb37d0da4399f861ee0bb39b3b1ce3c7db3 100644 (file)
@@ -53,9 +53,9 @@ static bRC baculaGetValue(bpContext *ctx, bVariable var, void *value);
 static bRC baculaSetValue(bpContext *ctx, bVariable var, void *value);
 static bRC baculaRegisterEvents(bpContext *ctx, ...);
 static bRC baculaJobMsg(bpContext *ctx, const char *file, int line,
-  int type, time_t mtime, const char *msg);
+  int type, time_t mtime, const char *fmt, ...);
 static bRC baculaDebugMsg(bpContext *ctx, const char *file, int line,
-  int level, const char *msg);
+  int level, const char *fmt, ...);
 
 static int     my_plugin_bopen(JCR *jcr, const char *fname, int flags, mode_t mode);
 static int     my_plugin_bclose(JCR *jcr);
@@ -499,18 +499,29 @@ static bRC baculaRegisterEvents(bpContext *ctx, ...)
 }
 
 static bRC baculaJobMsg(bpContext *ctx, const char *file, int line,
-  int type, time_t mtime, const char *msg)
+  int type, time_t mtime, const char *fmt, ...)
 {
-   Dmsg5(dbglvl, "Job message: %s:%d type=%d time=%ld msg=%s\n",
-      file, line, type, mtime, msg);
+   va_list arg_ptr;
+   char buf[2000];
+   JCR *jcr = (JCR *)(ctx->bContext);
+
+   va_start(arg_ptr, fmt);
+   bvsnprintf(buf, sizeof(buf), fmt, arg_ptr);
+   va_end(arg_ptr);
+   Jmsg(jcr, type, mtime, "%s", buf);
    return bRC_OK;
 }
 
 static bRC baculaDebugMsg(bpContext *ctx, const char *file, int line,
-  int level, const char *msg)
+  int level, const char *fmt, ...)
 {
-   Dmsg4(dbglvl, "Debug message: %s:%d level=%d msg=%s\n",
-      file, line, level, msg);
+   va_list arg_ptr;
+   char buf[2000];
+
+   va_start(arg_ptr, fmt);
+   bvsnprintf(buf, sizeof(buf), fmt, arg_ptr);
+   va_end(arg_ptr);
+   d_msg(file, line, level, "%s", buf);
    return bRC_OK;
 }
 
index 941192be2ca4d08e5041c0058e885d02bcfd73bd..78de89838263eff9369eb4683b6066e7b857b93c 100644 (file)
@@ -162,9 +162,9 @@ 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 *msg);     
+       int type, time_t mtime, const char *fmt, ...);     
    bRC (*DebugMessage)(bpContext *ctx, const char *file, int line,
-       int level, const char *msg);
+       int level, const char *fmt, ...);
 } bFuncs;
 
 
index 3089a979a7dad86be5a5195bee60dad055b76f53..1e55091652e1c7105721f81181d656f433068faf 100644 (file)
@@ -105,7 +105,7 @@ bool load_plugins(void *binfo, void *bfuncs, const char *plugin_dir, const char
       if (len < type_len+1 || strcmp(&result->d_name[len-type_len], type) != 0) {
          continue;
       }
-      Dmsg2(000, "Loaded plugin: name=%s len=%d\n", result->d_name, len);
+      Dmsg2(100, "Loaded plugin: name=%s len=%d\n", result->d_name, len);
        
       pm_strcpy(fname, plugin_dir);
       if (need_slash) {
index 85aa062bca5c4e33a68a70970da9f51f88182bf5..9b16235e33489137319c477ee73edcb2e459d1f8 100644 (file)
@@ -155,7 +155,7 @@ static bRC setPluginValue(bpContext *ctx, pVariable var, void *value)
 static bRC handlePluginEvent(bpContext *ctx, bEvent *event, void *value)
 {
    struct plugin_ctx *p_ctx = (struct plugin_ctx *)ctx->pContext;
-   char *name;
+// char *name;
 
    switch (event->eventType) {
    case bEventJobStart:
@@ -191,21 +191,21 @@ static bRC handlePluginEvent(bpContext *ctx, bEvent *event, void *value)
       p_ctx->cmd = strdup((char *)value);
       p = strchr(p_ctx->cmd, ':');
       if (!p) {
-         printf("Plugin terminator not found: %s\n", (char *)value);
+         bfuncs->JobMessage(ctx, __FILE__, __LINE__, M_FATAL, 0, "Plugin terminator not found: %s\n", (char *)value);
          return bRC_Error;
       }
       *p++ = 0;           /* terminate plugin */
       p_ctx->fname = p;
       p = strchr(p, ':');
       if (!p) {
-         printf("File terminator not found: %s\n", (char *)value);
+         bfuncs->JobMessage(ctx, __FILE__, __LINE__, M_FATAL, 0, "File terminator not found: %s\n", (char *)value);
          return bRC_Error;
       }
       *p++ = 0;           /* terminate file */
       p_ctx->reader = p;
       p = strchr(p, ':');
       if (!p) {
-         printf("Reader terminator not found: %s\n", (char *)value);
+         bfuncs->JobMessage(ctx, __FILE__, __LINE__, M_FATAL, 0, "Reader terminator not found: %s\n", (char *)value);
          return bRC_Error;
       }
       *p++ = 0;           /* terminate reader string */
@@ -217,7 +217,7 @@ static bRC handlePluginEvent(bpContext *ctx, bEvent *event, void *value)
    default:
       printf("bpipe-fd: unknown event=%d\n", event->eventType);
    }
-   bfuncs->getBaculaValue(ctx, bVarFDName, (void *)&name);
+// bfuncs->getBaculaValue(ctx, bVarFDName, (void *)&name);
 // printf("FD Name=%s\n", name);
 // bfuncs->JobMessage(ctx, __FILE__, __LINE__, 1, 0, "JobMesssage message");
 // bfuncs->DebugMessage(ctx, __FILE__, __LINE__, 1, "DebugMesssage message");