]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/findlib/find.c
Fix #1370 about the implementation of the "Exclude Dir Containing" option on FD.
[bacula/bacula] / bacula / src / findlib / find.c
index ad40a393f27814c3dddaeebd6316dfe31aa380c5..d089b703a8cbe990048f2e18b7d2a2999bba4006 100644 (file)
@@ -1,7 +1,7 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2000-2008 Free Software Foundation Europe e.V.
+   Copyright (C) 2000-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.
@@ -67,13 +67,13 @@ FF_PKT *init_find_files()
 
    /* Get system path and filename maximum lengths */
    path_max = pathconf(".", _PC_PATH_MAX);
-   if (path_max < 1024) {
-      path_max = 1024;
+   if (path_max < 2048) {
+      path_max = 2048;
    }
 
    name_max = pathconf(".", _PC_NAME_MAX);
-   if (name_max < 1024) {
-      name_max = 1024;
+   if (name_max < 2048) {
+      name_max = 2048;
    }
    path_max++;                        /* add for EOS */
    name_max++;                        /* add for EOS */
@@ -238,18 +238,16 @@ bool is_in_fileset(FF_PKT *ff)
             }
          }
       }
-#ifdef xxx
       for (i=0; i<fileset->exclude_list.size(); i++) {
          incexe = (findINCEXE *)fileset->exclude_list.get(i);
          foreach_dlist(node, &incexe->name_list) {
             fname = node->c_str();
-            Dmsg2(000, "Exc fname=%s ff->fname=%s\n", fname, ff->fname);
+            Dmsg2(100, "Exc fname=%s ff->fname=%s\n", fname, ff->fname);
             if (strcmp(fname, ff->fname) == 0) {
                return true;
             }
          }
       }
-#endif
    }
    return false;
 }
@@ -276,11 +274,12 @@ static bool accept_file(FF_PKT *ff)
       basename = ff->fname;
    }
 
+   ff->ignoredir = incexe->ignoredir;
+
    for (j = 0; j < incexe->opts_list.size(); j++) {
       findFOPTS *fo = (findFOPTS *)incexe->opts_list.get(j);
       ff->flags = fo->flags;
       ff->GZIP_level = fo->GZIP_level;
-      ff->ignoredir = fo->ignoredir;
       ff->fstypes = fo->fstype;
       ff->drivetypes = fo->drivetype;