]> git.sur5r.net Git - bacula/bacula/commitdiff
Fix double close of db during status
authorKern Sibbald <kern@sibbald.com>
Sun, 21 Sep 2003 18:16:27 +0000 (18:16 +0000)
committerKern Sibbald <kern@sibbald.com>
Sun, 21 Sep 2003 18:16:27 +0000 (18:16 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@710 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/kernstodo
bacula/src/dird/ua_status.c

index efc64b41cae5cf97271f9fbda827e73a3b2617e4..00228063c92281e94b0a5f7e72035839b16b3715 100644 (file)
@@ -38,6 +38,7 @@ For 1.32:
 
 
 For 1.33
+- Upgrade to cygwin 1.5
 - Get MySQL 3.23.58
 - Get and test MySQL 4.0
 - Do a complete audit of all pthreads_mutex, cond, ... to ensure that
index a8196d87365c7c0a941fbdbf153cf44bf6d3e923..65bd47c26dbfbf1d72cb83f77549ae1b48b4e6fc 100644 (file)
@@ -397,12 +397,16 @@ static void prt_runtime(UAContext *ua, JOB *job, int level, time_t runtime, POOL
 {
    char dt[MAX_TIME_LENGTH];      
    bool ok = false;
+   bool close_db = false;
    JCR *jcr = ua->jcr;
    MEDIA_DBR mr;
    memset(&mr, 0, sizeof(mr));
    if (job->JobType == JT_BACKUP) {
       jcr->db = NULL;
       ok = complete_jcr_for_job(jcr, job, pool);
+      if (jcr->db) {
+        close_db = true;             /* new db opened, remember to close it */
+      }
       if (ok) {
         ok = find_next_volume_for_append(jcr, &mr, 0);
       }
@@ -414,10 +418,10 @@ static void prt_runtime(UAContext *ua, JOB *job, int level, time_t runtime, POOL
    bsendmsg(ua, _("%-14s %-8s %-18s %-18s %s\n"), 
       level_to_str(level), job_type_to_str(job->JobType), dt, job->hdr.name,
       mr.VolumeName);
-   if (jcr->db) {
+   if (close_db) {
       db_close_database(jcr, jcr->db);
-      jcr->db = ua->db;
    }
+   jcr->db = ua->db;                 /* restore ua db to jcr */
 
 }