]> git.sur5r.net Git - bacula/bacula/commitdiff
Another fix for bug #1311 to get the correct last_full_time
authorKern Sibbald <kern@sibbald.com>
Thu, 2 Jul 2009 09:22:20 +0000 (09:22 +0000)
committerKern Sibbald <kern@sibbald.com>
Thu, 2 Jul 2009 09:22:20 +0000 (09:22 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@8944 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/cats/sql_find.c
bacula/src/dird/fd_cmds.c
bacula/src/version.h
bacula/technotes

index 82e914e46b587370f3f42cebd67232bf78f88e61..1ce51e3ff1191452325c4aea2bf63e0a4919f93d 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.
@@ -57,7 +57,7 @@
 
 /*
  * Find job start time if JobId specified, otherwise
- * find last full save for Incremental and Differential saves.
+ * find last Job start time Incremental and Differential saves.
  *
  *  StartTime is returned in stime
  *
@@ -75,8 +75,8 @@ db_find_job_start_time(JCR *jcr, B_DB *mdb, JOB_DBR *jr, POOLMEM **stime)
    pm_strcpy(stime, "0000-00-00 00:00:00");   /* default */
    /* If no Id given, we must find corresponding job */
    if (jr->JobId == 0) {
-         /* Differential is since last Full backup */
-         Mmsg(mdb->cmd,
+      /* Differential is since last Full backup */
+      Mmsg(mdb->cmd,
 "SELECT StartTime FROM Job WHERE JobStatus IN ('T','W') AND Type='%c' AND "
 "Level='%c' AND Name='%s' AND ClientId=%s AND FileSetId=%s "
 "ORDER BY StartTime DESC LIMIT 1",
index 4137fdfdfaedd4f13baff28bf71cdca31d4ea601..762850e5be00aa8890e160d95343006cd39a034c 100644 (file)
@@ -197,9 +197,16 @@ void get_level_since_time(JCR *jcr, char *since, int since_len)
       /* Look up start time of last Full job */
       now = (utime_t)time(NULL);
       jcr->jr.JobId = 0;     /* flag to return since time */
-      have_full = db_find_job_start_time(jcr, jcr->db, &jcr->jr, &jcr->stime);
+      /*
+       * This is probably redundant, but some of the code below
+       * uses jcr->stime, so don't remove unless you are sure.
+       */
+      if (!db_find_job_start_time(jcr, jcr->db, &jcr->jr, &jcr->stime)) {
+         do_full = true;
+      }
+      have_full = db_find_last_job_start_time(jcr, jcr->db, &jcr->jr, &stime, L_FULL);
       if (have_full) {
-         last_full_time = str_to_utime(jcr->stime);
+         last_full_time = str_to_utime(stime);
       } else {
          do_full = true;               /* No full, upgrade to one */
       }
index e8bc44b0cd11ccdbae8dd2d610e849a5b2746732..4c3741e95e42132cfbbb39dc806d7fa2af8fb1d2 100644 (file)
@@ -4,8 +4,8 @@
 
 #undef  VERSION
 #define VERSION "3.0.2"
-#define BDATE   "01 July 2009"
-#define LSMDATE "01Jul09"
+#define BDATE   "02 July 2009"
+#define LSMDATE "02Jul09"
 
 #define PROG_COPYRIGHT "Copyright (C) %d-2009 Free Software Foundation Europe e.V.\n"
 #define BYEAR "2009"       /* year for copyright messages in progs */
index e20801290f587a4ddca61b5228ce1355ba77ef0e..959cbf212b13e4477b629c1f54327e726899d5a4 100644 (file)
@@ -2,6 +2,8 @@
           
 General:
 
+02Jul09
+kes  Another fix for bug #1311 to get the correct last_full_time
 01Jul09
 kes  Fix bug #1317 Allow duplicate jobs = no does not work
 kes  Eliminate double job report when do_xxx_init() returns failure