X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fdird%2Fexpand.c;h=894be0da75cd2d764bf5e29ccaaf577603ff174d;hb=87187e5526cf427d78cbc3763a8d15df70c2ea3b;hp=64221aacf53d01b0866fe6ca211b5fbaf35b580a;hpb=46bce52552eae85045a274ed9a223149b6c1b9f5;p=bacula%2Fbacula diff --git a/bacula/src/dird/expand.c b/bacula/src/dird/expand.c index 64221aacf5..894be0da75 100644 --- a/bacula/src/dird/expand.c +++ b/bacula/src/dird/expand.c @@ -8,24 +8,32 @@ * Version $Id$ */ /* - Copyright (C) 2003-2004 Kern Sibbald and John Walker + Bacula® - The Network Backup Solution - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of - the License, or (at your option) any later version. + Copyright (C) 2003-2006 Free Software Foundation Europe e.V. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of + The main author of Bacula is Kern Sibbald, with contributions from + many others, a complete list can be found in the file AUTHORS. + This program is Free Software; you can redistribute it and/or + modify it under the terms of version three of the GNU Affero General Public + License as published by the Free Software Foundation and included + in the file LICENSE. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public - License along with this program; if not, write to the Free - Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - MA 02111-1307, USA. + You should have received a copy of the GNU Affero General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. - */ + 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. +*/ #include "bacula.h" #include "dird.h" @@ -37,7 +45,7 @@ static int date_item(JCR *jcr, int code, { struct tm tm; time_t now = time(NULL); - localtime_r(&now, &tm); + (void)localtime_r(&now, &tm); int val = 0; char buf[10]; @@ -79,23 +87,23 @@ static int job_item(JCR *jcr, int code, switch (code) { case 1: /* Job */ - str = jcr->job->hdr.name; + str = jcr->job->name(); break; case 2: /* Director's name */ str = my_name; break; case 3: /* level */ - str = job_level_to_str(jcr->JobLevel); + str = job_level_to_str(jcr->getJobLevel()); break; case 4: /* type */ - str = job_type_to_str(jcr->JobType); + str = job_type_to_str(jcr->getJobType()); break; case 5: /* JobId */ bsnprintf(buf, sizeof(buf), "%d", jcr->JobId); str = buf; break; case 6: /* Client */ - str = jcr->client->hdr.name; + str = jcr->client->name(); if (!str) { str = " "; } @@ -105,16 +113,24 @@ static int job_item(JCR *jcr, int code, str = buf; break; case 8: /* Pool */ - str = jcr->pool->hdr.name; + str = jcr->pool->name(); break; case 9: /* Storage */ - str = jcr->store->hdr.name; + if (jcr->wstore) { + str = jcr->wstore->name(); + } else { + str = jcr->rstore->name(); + } break; case 10: /* Catalog */ - str = jcr->catalog->hdr.name; + str = jcr->catalog->name(); break; case 11: /* MediaType */ - str = jcr->store->media_type; + if (jcr->wstore) { + str = jcr->wstore->media_type; + } else { + str = jcr->rstore->media_type; + } break; case 12: /* JobName */ str = jcr->Job; @@ -126,7 +142,6 @@ static int job_item(JCR *jcr, int code, return 1; } - struct s_built_in_vars {const char *var_name; int code; int (*func)(JCR *jcr, int code, const char **val_ptr, int *val_len, int *val_size);}; @@ -201,7 +216,7 @@ static var_rc_t lookup_counter_var(var_t *ctx, void *my_ctx, buf[var_len] = 0; LockRes(); for (COUNTER *counter=NULL; (counter = (COUNTER *)GetNextRes(R_COUNTER, (RES *)counter)); ) { - if (strcmp(counter->hdr.name, buf) == 0) { + if (strcmp(counter->name(), buf) == 0) { Dmsg2(100, "Counter=%s val=%d\n", buf, counter->CurrentValue); /* -1 => return size of array */ if (var_index == -1) { @@ -226,19 +241,19 @@ static var_rc_t lookup_counter_var(var_t *ctx, void *my_ctx, COUNTER_DBR cr; JCR *jcr = (JCR *)my_ctx; memset(&cr, 0, sizeof(cr)); - bstrncpy(cr.Counter, counter->hdr.name, sizeof(cr.Counter)); + bstrncpy(cr.Counter, counter->name(), sizeof(cr.Counter)); cr.MinValue = counter->MinValue; cr.MaxValue = counter->MaxValue; cr.CurrentValue = counter->CurrentValue; Dmsg1(100, "New value=%d\n", cr.CurrentValue); if (counter->WrapCounter) { - bstrncpy(cr.WrapCounter, counter->WrapCounter->hdr.name, sizeof(cr.WrapCounter)); + bstrncpy(cr.WrapCounter, counter->WrapCounter->name(), sizeof(cr.WrapCounter)); } else { cr.WrapCounter[0] = 0; } if (!db_update_counter_record(jcr, jcr->db, &cr)) { Jmsg(jcr, M_ERROR, 0, _("Count not update counter %s: ERR=%s\n"), - counter->hdr.name, db_strerror(jcr->db)); + counter->name(), db_strerror(jcr->db)); } } } @@ -376,8 +391,8 @@ static var_rc_t operate_var(var_t *var, void *my_ctx, Dmsg1(100, "Val=%s\n", buf); LockRes(); for (COUNTER *counter=NULL; (counter = (COUNTER *)GetNextRes(R_COUNTER, (RES *)counter)); ) { - if (strcmp(counter->hdr.name, buf) == 0) { - Dmsg2(100, "counter=%s val=%s\n", counter->hdr.name, buf); + if (strcmp(counter->name(), buf) == 0) { + Dmsg2(100, "counter=%s val=%s\n", counter->name(), buf); break; } }