From: Kern Sibbald Date: Sun, 8 May 2005 09:18:24 +0000 (+0000) Subject: Final changes X-Git-Tag: Release-1.38.0~485 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=fcb592b2e1ca083ed99636626e2e982f8052e9d9;p=bacula%2Fbacula Final changes git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@2013 91ce42f0-d328-0410-95d8-f526ca767f89 --- diff --git a/bacula/kernstodo b/bacula/kernstodo index 6e4242a034..f1a4b364cc 100644 --- a/bacula/kernstodo +++ b/bacula/kernstodo @@ -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. diff --git a/bacula/scripts/btraceback.in b/bacula/scripts/btraceback.in index 36e9eca8e1..7a66e32ee6 100755 --- a/bacula/scripts/btraceback.in +++ b/bacula/scripts/btraceback.in @@ -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 diff --git a/bacula/src/cats/sql.c b/bacula/src/cats/sql.c index 6d9f815b71..0c1e728d49 100644 --- a/bacula/src/cats/sql.c +++ b/bacula/src/cats/sql.c @@ -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; diff --git a/bacula/src/cats/sql_get.c b/bacula/src/cats/sql_get.c index efa1253ed4..4897538f5a 100644 --- a/bacula/src/cats/sql_get.c +++ b/bacula/src/cats/sql_get.c @@ -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); } diff --git a/bacula/src/dird/dird_conf.c b/bacula/src/dird/dird_conf.c index fae25e710a..a75eeaa420 100644 --- a/bacula/src/dird/dird_conf.c +++ b/bacula/src/dird/dird_conf.c @@ -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; ires_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: diff --git a/bacula/src/jcr.h b/bacula/src/jcr.h index 2b448ebb7c..8fdc424ff2 100644 --- a/bacula/src/jcr.h +++ b/bacula/src/jcr.h @@ -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 */ diff --git a/bacula/src/lib/jcr.c b/bacula/src/lib/jcr.c index 959e329084..91ad72db91 100755 --- a/bacula/src/lib/jcr.c +++ b/bacula/src/lib/jcr.c @@ -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; diff --git a/bacula/src/version.h b/bacula/src/version.h index a8578b5461..7dfb777401 100644 --- a/bacula/src/version.h +++ b/bacula/src/version.h @@ -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