X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fdird%2Fua_output.c;h=27ac0357724db8a02d1f72641842518a7dfb64ee;hb=fa1cad6e368a3c7d0a1ac4ad25176b7043b1310f;hp=9725a6e47d28412e90c2ba0120f28f443051bd7a;hpb=70d57739cbdf91cb57476628f75e26d1f76c1c8d;p=bacula%2Fbacula diff --git a/bacula/src/dird/ua_output.c b/bacula/src/dird/ua_output.c index 9725a6e47d..27ac035772 100644 --- a/bacula/src/dird/ua_output.c +++ b/bacula/src/dird/ua_output.c @@ -36,7 +36,7 @@ /* Imported variables */ extern int r_first; extern int r_last; -extern struct s_res resources[]; +extern RES_TABLE resources[]; extern int console_msg_pending; extern FILE *con_fd; extern brwlock_t con_lock; @@ -50,7 +50,7 @@ static int do_list_cmd(UAContext *ua, char *cmd, e_list_type llist); /* * Turn auto display of console messages on/off */ -int autodisplaycmd(UAContext *ua, char *cmd) +int autodisplay_cmd(UAContext *ua, char *cmd) { static char *kw[] = { N_("on"), @@ -71,6 +71,31 @@ int autodisplaycmd(UAContext *ua, char *cmd) return 1; } +/* + * Turn gui processing on/off + */ +int gui_cmd(UAContext *ua, char *cmd) +{ + static char *kw[] = { + N_("on"), + N_("off"), + NULL}; + + switch (find_arg_keyword(ua, kw)) { + case 0: + ua->jcr->gui = true; + break; + case 1: + ua->jcr->gui = false; + break; + default: + bsendmsg(ua, _("ON or OFF keyword missing.\n")); + break; + } + return 1; +} + + struct showstruct {char *res_name; int type;}; static struct showstruct reses[] = { @@ -82,7 +107,6 @@ static struct showstruct reses[] = { {N_("catalogs"), R_CATALOG}, {N_("schedules"), R_SCHEDULE}, {N_("filesets"), R_FILESET}, - {N_("groups"), R_GROUP}, {N_("pools"), R_POOL}, {N_("messages"), R_MSGS}, {N_("all"), -1}, @@ -109,6 +133,7 @@ int show_cmd(UAContext *ua, char *cmd) Dmsg1(20, "show: %s\n", ua->UA_sock->msg); + LockRes(); for (i=1; iargc; i++) { type = 0; res_name = ua->argk[i]; @@ -127,6 +152,7 @@ int show_cmd(UAContext *ua, char *cmd) break; } } + } else { /* Dump a single resource with specified name */ recurse = 0; @@ -154,18 +180,20 @@ int show_cmd(UAContext *ua, char *cmd) for (j=0; reses[j].res_name; j++) { bsendmsg(ua, "%s\n", _(reses[j].res_name)); } - return 1; + goto bail_out; case -3: bsendmsg(ua, _("%s resource %s not found.\n"), res_name, ua->argv[i]); - return 1; + goto bail_out; case 0: bsendmsg(ua, _("Resource %s not found\n"), res_name); - return 1; + goto bail_out; default: dump_resource(recurse?type:-type, res, bsendmsg, ua); break; } } +bail_out: + UnlockRes(); return 1; } @@ -442,8 +470,6 @@ RUN *find_next_run(RUN *run, JOB *job, time_t &runtime) int woy, twoy; int tod, tom; - Dmsg0(200, "enter find_runs()\n"); - sched = job->schedule; if (sched == NULL) { /* scheduled? */ return NULL; /* no nothing to report */ @@ -518,7 +544,7 @@ RUN *find_next_run(RUN *run, JOB *job, time_t &runtime) tm.tm_min = run->minute; tm.tm_sec = 0; runtime = mktime(&tm); - Dmsg2(200, "truntime=%d now=%d\n", runtime, now); +// Dmsg2(200, "truntime=%d now=%d\n", runtime, now); if (runtime < tomorrow) { return run; /* found it, return run resource */ }