]> git.sur5r.net Git - bacula/bacula/commitdiff
Change plugin FileSet function names add NewOptions and NewIncludes
authorKern Sibbald <kern@sibbald.com>
Sun, 18 Apr 2010 16:28:40 +0000 (18:28 +0200)
committerEric Bollengier <eric@eb.homelinux.org>
Mon, 2 Aug 2010 14:53:13 +0000 (16:53 +0200)
bacula/src/filed/fd_plugins.c
bacula/src/filed/fd_plugins.h
bacula/src/filed/job.c
bacula/src/filed/protos.h
bacula/src/plugins/fd/test-plugin-fd.c

index 13b9fb0d05e36ad2704883185d65d08a18c90e69..a55427796c825ccd153eadd516f9e1b01b4741c7 100644 (file)
@@ -66,9 +66,11 @@ static void *baculaMalloc(bpContext *ctx, const char *file, int line,
 static void baculaFree(bpContext *ctx, const char *file, int line, void *mem);
 static bRC  baculaAddExclude(bpContext *ctx, const char *file);
 static bRC baculaAddInclude(bpContext *ctx, const char *file);
-static bRC baculaAddIncludeOptions(bpContext *ctx, const char *opts);
-static bRC baculaAddRegexToInclude(bpContext *ctx, const char *item, int type);
-static bRC baculaAddWildToInclude(bpContext *ctx, const char *item, int type);
+static bRC baculaAddOptions(bpContext *ctx, const char *opts);
+static bRC baculaAddRegex(bpContext *ctx, const char *item, int type);
+static bRC baculaAddWild(bpContext *ctx, const char *item, int type);
+static bRC baculaNewOptions(bpContext *ctx);
+static bRC baculaNewInclude(bpContext *ctx);
 static bool is_plugin_compatible(Plugin *plugin);
 
 /*
@@ -101,9 +103,11 @@ static bFuncs bfuncs = {
    baculaFree,
    baculaAddExclude,
    baculaAddInclude,
-   baculaAddIncludeOptions,
-   baculaAddRegexToInclude,
-   baculaAddWildToInclude
+   baculaAddOptions,
+   baculaAddRegex,
+   baculaAddWild,
+   baculaNewOptions,
+   baculaNewInclude
 };
 
 /* 
@@ -1129,7 +1133,7 @@ static bRC baculaAddInclude(bpContext *ctx, const char *file)
    return bRC_OK;
 }
 
-static bRC baculaAddIncludeOptions(bpContext *ctx, const char *opts)
+static bRC baculaAddOptions(bpContext *ctx, const char *opts)
 {
    JCR *jcr;
    bacula_ctx *bctx;
@@ -1144,7 +1148,7 @@ static bRC baculaAddIncludeOptions(bpContext *ctx, const char *opts)
    return bRC_OK;
 }
 
-static bRC baculaAddRegexToInclude(bpContext *ctx, const char *item, int type)
+static bRC baculaAddRegex(bpContext *ctx, const char *item, int type)
 {
    JCR *jcr;
    bacula_ctx *bctx;
@@ -1159,7 +1163,7 @@ static bRC baculaAddRegexToInclude(bpContext *ctx, const char *item, int type)
    return bRC_OK;
 }
 
-static bRC baculaAddWildToInclude(bpContext *ctx, const char *item, int type)
+static bRC baculaAddWild(bpContext *ctx, const char *item, int type)
 {
    JCR *jcr;
    bacula_ctx *bctx;
@@ -1174,8 +1178,27 @@ static bRC baculaAddWildToInclude(bpContext *ctx, const char *item, int type)
    return bRC_OK;
 }
 
+static bRC baculaNewOptions(bpContext *ctx)
+{
+   JCR *jcr;
+   bacula_ctx *bctx;
+   if (!is_ctx_good(ctx, jcr, bctx)) {
+      return bRC_Error;
+   }
+   (void)new_options(jcr, NULL);
+   return bRC_OK;
+}
 
-
+static bRC baculaNewInclude(bpContext *ctx)
+{
+   JCR *jcr;
+   bacula_ctx *bctx;
+   if (!is_ctx_good(ctx, jcr, bctx)) {
+      return bRC_Error;
+   }
+   (void)new_include(jcr);
+   return bRC_OK;
+}
 
 
 #ifdef TEST_PROGRAM
index a8ca050c35cd902596fe750c7cb324173d310675..875936c963ea350aaac4fc0d552cb0f542979cb6 100644 (file)
@@ -246,9 +246,11 @@ typedef struct s_baculaFuncs {
    void (*baculaFree)(bpContext *ctx, const char *file, int line, void *mem);
    bRC (*AddExclude)(bpContext *ctx, const char *file);
    bRC (*AddInclude)(bpContext *ctx, const char *file);
-   bRC (*AddIncludeOptions)(bpContext *ctx, const char *opts);
-   bRC (*AddRegexToInclude)(bpContext *ctx, const char *item, int type);
-   bRC (*AddWildToInclude)(bpContext *ctx, const char *item, int type);
+   bRC (*AddOptions)(bpContext *ctx, const char *opts);
+   bRC (*AddRegex)(bpContext *ctx, const char *item, int type);
+   bRC (*AddWild)(bpContext *ctx, const char *item, int type);
+   bRC (*NewOptions)(bpContext *ctx);
+   bRC (*NewInclude)(bpContext *ctx);
 } bFuncs;
 
 
index b373c916a774756d92e9767a1de92dc454e5c338..2a9dca806fd6a30f0a3f6e6b45cea4b883f2c6f2 100644 (file)
@@ -889,6 +889,9 @@ static findFOPTS *start_options(FF_PKT *ff)
  */
 void new_options(JCR *jcr, findINCEXE *incexe)
 {
+   if (!incexe) {
+      incexe = jcr->ff->fileset->incexe;
+   }
    findFOPTS *fo = (findFOPTS *)malloc(sizeof(findFOPTS));
    memset(fo, 0, sizeof(findFOPTS));
    fo->regex.init(1, true);
@@ -902,7 +905,7 @@ void new_options(JCR *jcr, findINCEXE *incexe)
    fo->fstype.init(1, true);
    fo->drivetype.init(1, true);
    incexe->current_opts = fo;
-   incexe->opts_list.append(fo);
+   incexe->opts_list.prepend(fo);
    jcr->ff->fileset->state = state_options;
 }
 
@@ -1230,6 +1233,7 @@ static int set_options(findFOPTS *fo, const char *opts)
          break;
       case 'R':                 /* Resource forks and Finder Info */
          fo->flags |= FO_HFSPLUS;
+         break;
       case 'r':                 /* read fifo */
          fo->flags |= FO_READFIFO;
          break;
index 9def837dd9128c057decf6cd8c6d332eee2b8ded..dc7fd48c8b1754c49cfcf4f4547af6a82dee67c6 100644 (file)
@@ -75,3 +75,4 @@ void add_file_to_fileset(JCR *jcr, const char *fname, bool is_file);
 int add_options_to_fileset(JCR *jcr, const char *item);
 int add_wild_to_fileset(JCR *jcr, const char *item, int type);
 int add_regex_to_fileset(JCR *jcr, const char *item, int type);
+findINCEXE *new_include(JCR *jcr);
index c0d1feede1b38be5b10047b84d9f4b0510f4f51d..681ca2192bafb10568eb18de6a6186d8c07aebfb 100644 (file)
@@ -230,12 +230,13 @@ static bRC handlePluginEvent(bpContext *ctx, bEvent *event, void *value)
       break;
    /* End of Dir FileSet commands, now we can add excludes */
    case bEventEndFileSet:
-      bfuncs->AddWildToInclude(ctx, "*.c", ' ');
-      bfuncs->AddWildToInclude(ctx, "*.cpp", ' ');
-      bfuncs->AddIncludeOptions(ctx, "ei");   /* exclude, ignore case */
+      bfuncs->NewOptions(ctx);
+      bfuncs->AddWild(ctx, "*.c", ' ');
+      bfuncs->AddWild(ctx, "*.cpp", ' ');
+      bfuncs->AddOptions(ctx, "ei");         /* exclude, ignore case */
+      bfuncs->AddExclude(ctx, "/home/kern/bacula/regress/README");
       break;
    case bEventStartBackupJob:
-      bfuncs->AddExclude(ctx, "/home/kern/bacula/regress/README");
       break;
    case bEventRestoreObject:
       printf("Plugin RestoreObject\n");