]> git.sur5r.net Git - bacula/bacula/commitdiff
Final changes
authorKern Sibbald <kern@sibbald.com>
Sun, 8 May 2005 09:18:24 +0000 (09:18 +0000)
committerKern Sibbald <kern@sibbald.com>
Sun, 8 May 2005 09:18:24 +0000 (09:18 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@2013 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/kernstodo
bacula/scripts/btraceback.in
bacula/src/cats/sql.c
bacula/src/cats/sql_get.c
bacula/src/dird/dird_conf.c
bacula/src/jcr.h
bacula/src/lib/jcr.c
bacula/src/version.h

index 6e4242a034bb4a7bcc820d55931352a172539e6b..f1a4b364ccb9ba9889968049d9c206bbe7fd2ef7 100644 (file)
@@ -76,6 +76,10 @@ For 1.37:
 - Fix the Rescue CDROM.
 
 Maybe in 1.37:
+- To mark files as deleted, run essentially a Verify to disk, and
+  when a file is found missing (MarkId != JobId), then create
+  a new File record with FileIndex == -1. This could be done
+  by the FD at the same time as the backup.
 - Fix FD JobType to be set before RunBeforeJob in FD.
 - Look at adding full Volume and Pool information to a Volume 
   label so that bscan can get *all* the info. 
index 36e9eca8e16d9ad4af7454c4e615d09ae50992b7..7a66e32ee60234bd60dbd701834fa7ae2413acad 100755 (executable)
@@ -12,8 +12,8 @@ PNAME=`basename $1`
 if test `uname -s` = SunOS ; then
   gcore -o @working_dir@/${PNAME} $2
   dbx $1 $2 <@scriptdir@/btraceback.dbx 2>&1 \
-   | @sbindir@/bsmtp -h @smtp_host@ -s "Bacula DBX traceback of ${PNAME}" @dump_email@
+   | @sbindir@/bsmtp -h @smtp_host@ -f @dump_email@ -s "Bacula DBX traceback of ${PNAME}" @dump_email@
 else
   gdb -quiet -batch -x @scriptdir@/btraceback.gdb $1 $2 2>&1 \
-   | @sbindir@/bsmtp -h @smtp_host@ -s "Bacula GDB traceback of ${PNAME}" @dump_email@
+   | @sbindir@/bsmtp -h @smtp_host@ -f @dump_email@ -s "Bacula GDB traceback of ${PNAME}" @dump_email@
 fi 
index 6d9f815b71e6de59b753f0f035648f7f3713dd6e..0c1e728d49e83d04253bf0adf62ebd2b82c35341 100644 (file)
@@ -315,15 +315,14 @@ void db_end_transaction(JCR *jcr, B_DB *mdb)
    if (!mdb) {
       return;
    }
-   if (jcr->cached_attribute) {
+#ifdef xxx
+   if (jcr && jcr->cached_attribute) {
       if (!db_create_file_attributes_record(jcr, jcr->db, &jcr->ar)) {
          Jmsg1(jcr, M_FATAL, 0, _("Attribute create error. %s"), db_strerror(jcr->db));
       }
       jcr->cached_attribute = false;
    }
-   if (jcr->attr) {
-      free_pool_memory(jcr->attr);
-   }  
+#endif
 #ifdef HAVE_SQLITE
    if (!mdb->allow_transactions) {
       return;
index efa1253ed46b898c2c026e0a3cbbf4ac82ff2b1d..4897538f5a944c7bea4ec90662ec96ab113ed0f1 100644 (file)
@@ -729,7 +729,7 @@ int db_get_fileset_record(JCR *jcr, B_DB *mdb, FILESET_DBR *fsr)
            edit_int64(fsr->FileSetId, ed1));
    } else {                           /* find by name */
       Mmsg(mdb->cmd,
-           "SELECT FileSetId,FileSet,CreateTime,MD5 FROM FileSet "
+           "SELECT FileSetId,FileSet,MD5,CreateTime FROM FileSet "
            "WHERE FileSet='%s' ORDER BY CreateTime DESC LIMIT 1", fsr->FileSet);
    }
 
index fae25e710ae02a00b26b1a8956d1110cbc9643be..a75eeaa420f4e5c61a25684cc4b07c98f9d052ae 100644 (file)
@@ -883,22 +883,22 @@ void free_resource(RES *sres, int type)
          free_tls_context(res->res_dir.tls_ctx);
       }
       if (res->res_dir.tls_ca_certfile) {
-        free(res->res_dir.tls_ca_certfile);
+         free(res->res_dir.tls_ca_certfile);
       }
       if (res->res_dir.tls_ca_certdir) {
-        free(res->res_dir.tls_ca_certdir);
+         free(res->res_dir.tls_ca_certdir);
       }
       if (res->res_dir.tls_certfile) {
-        free(res->res_dir.tls_certfile);
+         free(res->res_dir.tls_certfile);
       }
       if (res->res_dir.tls_keyfile) {
-        free(res->res_dir.tls_keyfile);
+         free(res->res_dir.tls_keyfile);
       }
       if (res->res_dir.tls_dhfile) {
-        free(res->res_dir.tls_dhfile);
+         free(res->res_dir.tls_dhfile);
       }
       if (res->res_dir.tls_allowed_cns) {
-        delete res->res_dir.tls_allowed_cns;
+         delete res->res_dir.tls_allowed_cns;
       }
 #endif /* HAVE_TLS */
       break;
@@ -914,22 +914,22 @@ void free_resource(RES *sres, int type)
          free_tls_context(res->res_con.tls_ctx);
       }
       if (res->res_con.tls_ca_certfile) {
-        free(res->res_con.tls_ca_certfile);
+         free(res->res_con.tls_ca_certfile);
       }
       if (res->res_con.tls_ca_certdir) {
-        free(res->res_con.tls_ca_certdir);
+         free(res->res_con.tls_ca_certdir);
       }
       if (res->res_con.tls_certfile) {
-        free(res->res_con.tls_certfile);
+         free(res->res_con.tls_certfile);
       }
       if (res->res_con.tls_keyfile) {
-        free(res->res_con.tls_keyfile);
+         free(res->res_con.tls_keyfile);
       }
       if (res->res_con.tls_dhfile) {
-        free(res->res_con.tls_dhfile);
+         free(res->res_con.tls_dhfile);
       }
       if (res->res_con.tls_allowed_cns) {
-        delete res->res_con.tls_allowed_cns;
+         delete res->res_con.tls_allowed_cns;
       }
 #endif /* HAVE_TLS */
       for (int i=0; i<Num_ACL; i++) {
@@ -951,16 +951,16 @@ void free_resource(RES *sres, int type)
          free_tls_context(res->res_client.tls_ctx);
       }
       if (res->res_client.tls_ca_certfile) {
-        free(res->res_client.tls_ca_certfile);
+         free(res->res_client.tls_ca_certfile);
       }
       if (res->res_client.tls_ca_certdir) {
-        free(res->res_client.tls_ca_certdir);
+         free(res->res_client.tls_ca_certdir);
       }
       if (res->res_client.tls_certfile) {
-        free(res->res_client.tls_certfile);
+         free(res->res_client.tls_certfile);
       }
       if (res->res_client.tls_keyfile) {
-        free(res->res_client.tls_keyfile);
+         free(res->res_client.tls_keyfile);
       }
 #endif /* HAVE_TLS */
       break;
@@ -982,16 +982,16 @@ void free_resource(RES *sres, int type)
          free_tls_context(res->res_store.tls_ctx);
       }
       if (res->res_store.tls_ca_certfile) {
-        free(res->res_store.tls_ca_certfile);
+         free(res->res_store.tls_ca_certfile);
       }
       if (res->res_store.tls_ca_certdir) {
-        free(res->res_store.tls_ca_certdir);
+         free(res->res_store.tls_ca_certdir);
       }
       if (res->res_store.tls_certfile) {
-        free(res->res_store.tls_certfile);
+         free(res->res_store.tls_certfile);
       }
       if (res->res_store.tls_keyfile) {
-        free(res->res_store.tls_keyfile);
+         free(res->res_store.tls_keyfile);
       }
 #endif /* HAVE_TLS */
       break;
@@ -1115,7 +1115,7 @@ void save_resource(int type, RES_ITEM *items, int pass)
 {
    URES *res;
    int rindex = type - r_first;
-   int i, size;
+   int i, size = 0;
    bool error = false;
 
    /* Check Job requirements after applying JobDefs */
@@ -1165,20 +1165,20 @@ void save_resource(int type, RES_ITEM *items, int pass)
 
       /* Resources containing another resource or alist */
       case R_CONSOLE:
-        if ((res = (URES *)GetResWithName(R_CONSOLE, res_all.res_con.hdr.name)) == NULL) {
-           Emsg1(M_ERROR_TERM, 0, "Cannot find Console resource %s\n", res_all.res_con.hdr.name);
-        }
+         if ((res = (URES *)GetResWithName(R_CONSOLE, res_all.res_con.hdr.name)) == NULL) {
+            Emsg1(M_ERROR_TERM, 0, "Cannot find Console resource %s\n", res_all.res_con.hdr.name);
+         }
 #ifdef HAVE_TLS
-        res->res_con.tls_allowed_cns = res_all.res_con.tls_allowed_cns;
+         res->res_con.tls_allowed_cns = res_all.res_con.tls_allowed_cns;
 #endif
-        break;
+         break;
       case R_DIRECTOR:
          if ((res = (URES *)GetResWithName(R_DIRECTOR, res_all.res_dir.hdr.name)) == NULL) {
             Emsg1(M_ERROR_TERM, 0, "Cannot find Director resource %s\n", res_all.res_dir.hdr.name);
          }
          res->res_dir.messages = res_all.res_dir.messages;
 #ifdef HAVE_TLS
-        res->res_dir.tls_allowed_cns = res_all.res_dir.tls_allowed_cns;
+         res->res_dir.tls_allowed_cns = res_all.res_dir.tls_allowed_cns;
 #endif
          break;
       case R_STORAGE:
index 2b448ebb7c494f183dc0b962d10d13a57e21c414..8fdc424ff2a5afed705e1c49ae9e3a979e1f48ef 100644 (file)
@@ -146,6 +146,9 @@ struct JCR {
    void *Python_job;                  /* Python Job Object */
    void *Python_events;               /* Python Events Object */
 
+   bool cached_attribute;             /* set if attribute is cached */
+   POOLMEM *attr;                     /* Attribute string from SD */
+
    /* Daemon specific part of JCR */
    /* This should be empty in the library */
 
@@ -196,9 +199,7 @@ struct JCR {
    bool write_part_after_job;         /* Write part after job in SD */
    bool needs_sd;                     /* set if SD needed by Job */
    bool cloned;                       /* set if cloned */
-   bool cached_attribute;             /* set if attribute is cached */
    ATTR_DBR ar;                       /* DB attribute record */
-   POOLMEM *attr;                     /* Attribute string from SD */
 #endif /* DIRECTOR_DAEMON */
 
 
index 959e32908442887b6cc5fe44a3e276d256f2425e..91ad72db915775a19b413ca158ec189ea8ded0aa 100755 (executable)
@@ -305,6 +305,11 @@ static void free_common_jcr(JCR *jcr)
       jcr->client_name = NULL;
    }
 
+   if (jcr->attr) {
+      free_pool_memory(jcr->attr);
+      jcr->attr = NULL;
+   }
+
    if (jcr->sd_auth_key) {
       free(jcr->sd_auth_key);
       jcr->sd_auth_key = NULL;
index a8578b5461f8b3c278ea6770fd07478c278d2794..7dfb77740133a0d2c2c89483e2197799b0d0d467 100644 (file)
@@ -1,8 +1,8 @@
 /* */
 #undef  VERSION
-#define VERSION "1.37.17"
-#define BDATE   "07 May 2005"
-#define LSMDATE "07May05"
+#define VERSION "1.37.18"
+#define BDATE   "08 May 2005"
+#define LSMDATE "08May05"
 
 /* Debug flags */
 #undef  DEBUG