]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/dird/ua_output.c
ebl tweak tab/space
[bacula/bacula] / bacula / src / dird / ua_output.c
index ab33393a1971787160b106d3ff3e0576ae1d8581..aaf9140acc003cb4c5b992734608e5a2e6d9a64f 100644 (file)
@@ -1,7 +1,7 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2000-2007 Free Software Foundation Europe e.V.
+   Copyright (C) 2000-2008 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.
@@ -20,7 +20,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   Bacula® is a registered trademark of John Walker.
+   Bacula® is a registered trademark of Kern Sibbald.
    The licensor of Bacula is the Free Software Foundation Europe
    (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
    Switzerland, email:ftf@fsfeurope.org.
 /* Imported subroutines */
 
 /* Imported variables */
-extern int r_first;
-extern int r_last;
-extern RES_TABLE resources[];
-extern RES **res_head;
 
 /* Imported functions */
 
@@ -446,7 +442,7 @@ static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist)
 static bool list_nextvol(UAContext *ua, int ndays)
 {
    JOB *job;
-   JCR *jcr = ua->jcr;
+   JCR *jcr;          
    USTORE store;
    RUN *run;
    time_t runtime;
@@ -463,23 +459,26 @@ static bool list_nextvol(UAContext *ua, int ndays)
    } else {
       job = (JOB *)GetResWithName(R_JOB, ua->argv[i]);
       if (!job) {
-         Jmsg(jcr, M_ERROR, 0, _("%s is not a job name.\n"), ua->argv[i]);
+         Jmsg(ua->jcr, M_ERROR, 0, _("%s is not a job name.\n"), ua->argv[i]);
          if ((job = select_job_resource(ua)) == NULL) {
             return false;
          }
       }
    }
+
+   jcr = new_jcr(sizeof(JCR), dird_free_jcr);
    for (run=NULL; (run = find_next_run(run, job, runtime, ndays)); ) {
       if (!complete_jcr_for_job(jcr, job, run->pool)) {
-         return false;
+         found = false;
+         goto get_out;
       }
       if (!jcr->jr.PoolId) {
-         ua->error_msg(_("Could not Pool Job %s\n"), job->name());
+         ua->error_msg(_("Could not find Pool for Job %s\n"), job->name());
          continue;
       }
       memset(&pr, 0, sizeof(pr));
       pr.PoolId = jcr->jr.PoolId;
-      if (!db_get_pool_record(ua->jcr, ua->db, &pr)) {
+      if (!db_get_pool_record(jcr, jcr->db, &pr)) {
          bstrncpy(pr.Name, "*UnknownPool*", sizeof(pr.Name));
       }
       mr.PoolId = jcr->jr.PoolId;
@@ -494,11 +493,12 @@ static bool list_nextvol(UAContext *ua, int ndays)
             job->name(), pr.Name, level_to_str(run->level), mr.VolumeName);
          found = true;
       }
-      if (jcr->db && jcr->db != ua->db) {
-         db_close_database(jcr, jcr->db);
-         jcr->db = NULL;
-      }
    }
+
+get_out:
+   db_close_database(jcr, jcr->db);
+   jcr->db = NULL;
+   free_jcr(jcr);
    if (!found) {
       ua->error_msg(_("Could not find next Volume for Job %s.\n"),
          job->hdr.name);
@@ -557,12 +557,12 @@ RUN *find_next_run(RUN *run, JOB *job, time_t &runtime, int ndays)
             bit_is_set(woy, run->woy);
  
 #ifdef xxx
-         Dmsg2(000, "day=%d is_scheduled=%d\n", day, is_scheduled);
-         Dmsg1(000, "bit_set_mday=%d\n", bit_is_set(mday, run->mday));
-         Dmsg1(000, "bit_set_wday=%d\n", bit_is_set(wday, run->wday));
-         Dmsg1(000, "bit_set_month=%d\n", bit_is_set(month, run->month));
-         Dmsg1(000, "bit_set_wom=%d\n", bit_is_set(wom, run->wom));
-         Dmsg1(000, "bit_set_woy=%d\n", bit_is_set(woy, run->woy));
+         Pmsg2(000, "day=%d is_scheduled=%d\n", day, is_scheduled);
+         Pmsg1(000, "bit_set_mday=%d\n", bit_is_set(mday, run->mday));
+         Pmsg1(000, "bit_set_wday=%d\n", bit_is_set(wday, run->wday));
+         Pmsg1(000, "bit_set_month=%d\n", bit_is_set(month, run->month));
+         Pmsg1(000, "bit_set_wom=%d\n", bit_is_set(wom, run->wom));
+         Pmsg1(000, "bit_set_woy=%d\n", bit_is_set(woy, run->woy));
 #endif
 
          if (is_scheduled) { /* Jobs scheduled on that day */
@@ -576,7 +576,7 @@ RUN *find_next_run(RUN *run, JOB *job, time_t &runtime, int ndays)
                }
             }
             bstrncat(buf, "\n", sizeof(buf));
-            Dmsg1(000, "%s", buf);
+            Pmsg1(000, "%s", buf);
 #endif
             /* find time (time_t) job is to be run */
             (void)localtime_r(&future, &runtm);
@@ -620,7 +620,8 @@ bool complete_jcr_for_job(JCR *jcr, JOB *job, POOL *pool)
    }
 
    Dmsg0(100, "complete_jcr open db\n");
-   jcr->db = jcr->db=db_init_database(jcr, jcr->catalog->db_name, jcr->catalog->db_user,
+   jcr->db = jcr->db=db_init(jcr, jcr->catalog->db_driver, jcr->catalog->db_name, 
+                      jcr->catalog->db_user,
                       jcr->catalog->db_password, jcr->catalog->db_address,
                       jcr->catalog->db_port, jcr->catalog->db_socket,
                       jcr->catalog->mult_db_connections);
@@ -769,7 +770,7 @@ void bmsg(UAContext *ua, const char *fmt, va_list arg_ptr)
       msg = bs->msg;
    }
    if (!msg) {
-      msg = get_pool_memory(5000);
+      msg = get_memory(5000);
    }
 
    maxlen = sizeof_pool_memory(msg) - 1;