X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fdird%2Fua_output.c;h=55d81ebb9ce71788e67e59366cad9260cc34e58f;hb=b9ac1b6c82fd69ecf139edce98585a889906db8b;hp=b2ec0eee23ff2f064ac6ceabccb3c8aa73428d06;hpb=2833b40d4c4d54d94d6bfd179112d418288e8b84;p=bacula%2Fbacula diff --git a/bacula/src/dird/ua_output.c b/bacula/src/dird/ua_output.c index b2ec0eee23..55d81ebb9c 100644 --- a/bacula/src/dird/ua_output.c +++ b/bacula/src/dird/ua_output.c @@ -82,7 +82,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}, @@ -438,11 +437,10 @@ RUN *find_next_run(RUN *run, JOB *job, time_t &runtime) time_t now, tomorrow; SCHED *sched; struct tm tm; - int mday, wday, month, wpos, tmday, twday, tmonth, twpos, i, hour; + int mday, wday, month, wom, tmday, twday, tmonth, twom, i, hour; + 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 */ @@ -453,7 +451,8 @@ RUN *find_next_run(RUN *run, JOB *job, time_t &runtime) mday = tm.tm_mday - 1; wday = tm.tm_wday; month = tm.tm_mon; - wpos = (tm.tm_mday - 1) / 7; + wom = mday / 7; + woy = tm_woy(now); /* Break down tomorrow into components */ tomorrow = now + 60 * 60 * 24; @@ -461,7 +460,8 @@ RUN *find_next_run(RUN *run, JOB *job, time_t &runtime) tmday = tm.tm_mday - 1; twday = tm.tm_wday; tmonth = tm.tm_mon; - twpos = (tm.tm_mday - 1) / 7; + twom = tmday / 7; + twoy = tm_woy(tomorrow); if (run == NULL) { run = sched->run; @@ -473,12 +473,16 @@ RUN *find_next_run(RUN *run, JOB *job, time_t &runtime) * Find runs in next 24 hours */ tod = (bit_is_set(mday, run->mday) || bit_is_set(wday, run->wday)) && - bit_is_set(month, run->month) && bit_is_set(wpos, run->wpos); + bit_is_set(month, run->month) && bit_is_set(wom, run->wom) && + bit_is_set(woy, run->woy); tom = (bit_is_set(tmday, run->mday) || bit_is_set(twday, run->wday)) && - bit_is_set(tmonth, run->month) && bit_is_set(twpos, run->wpos); + bit_is_set(tmonth, run->month) && bit_is_set(twom, run->wom) && + bit_is_set(twoy, run->woy); - Dmsg2(200, "tod=%d tom=%d\n", tod, tom); +// Dmsg2(200, "tod=%d tom=%d\n", tod, tom); +// Dmsg2(200, "wom=%d twom=%d\n", wom, twom); +// Dmsg1(200, "bit_set_wom=%d\n", bit_is_set(wom, run->wom)); if (tod) { /* Jobs scheduled today (next 24 hours) */ /* find time (time_t) job is to be run */ localtime_r(&now, &tm); @@ -490,6 +494,7 @@ RUN *find_next_run(RUN *run, JOB *job, time_t &runtime) tm.tm_sec = 0; runtime = mktime(&tm); if (runtime > now) { + Dmsg2(000, "Found it level=%d %c\n", run->level, run->level); return run; /* found it, return run resource */ } } @@ -510,7 +515,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 */ }