New update scheduler:
(schedulefil): New. (set_dirs, set_paths): Rename. Initialize schedulfil. (read_schedule): New. Can read several updates, which will be used in later changesets. (update_time): Change to array. Will be used in later changesets. (update_schedule_anchor): New. (update_init): Initialize it. (update_get_schedule): New. (update_init): Call it to initialize update_time[]. (update_sched): Rewrite. (update_forced, update_wanted): Replace. (update_reschedule): New. (main): Call it on SIGHUP to reload the schedule. (update_trigger, update_force, force, player_coms): Drop force's capability to schedule updates in the future, because it's not worth the trouble to implement again. Deities can simply edit the schedule file to schedule updates. Remove update_force() and update_trigger()'s parameter. (upda): Update for new scheduler. Take care to keep output the same as far as possible, even though it's ugly, to avoid breaking clients. (update_policy, adj_update, update_times, hourslop, blitz_time): econfig keys removed. (update_demand, UPD_DEMAND_NONE, UPD_DEMAND_SCHED, UPD_DEMAND_ASYNC) (update_demandpolicy, UDP_NORMAL, UDP_TIMES, UDP_NORMAL, UDP_BLITZ) (UDP_MAX, UDP_DEFAULT, UDDEM_TMCHECK, UDDEM_COMSET, UDDEM_DISABLE) (UDDEM_MAX, UDDEM_DEFAULT): econfig key and values replaced. Users changed. wantupd.h is now empty, remove. (demand_check): External linkage. (update_policy_check): Now pointless, remove. (is_daytime_near, min_to_next_daytime, regular_update_time) (scheduled_update_time, next_scheduled_time, updatetime) (next_update_time, next_update_check_time): Unused, Remove. (demand_check, demandupdatecheck): Move call of demand_update_time() from demand_check(), which controls all demand updates, to demandupdatecheck(), which controls only unscheduled ones. Fixes update command not to lie about the next scheduled demand update. (demandupdatecheck): Check updates_disabled() so that zdone no longer claims to trigger an update when it can't.
This commit is contained in:
parent
15f8f48353
commit
71320ed67f
20 changed files with 487 additions and 448 deletions
|
@ -49,12 +49,7 @@ force(void)
|
|||
pr("Updates are disabled\n");
|
||||
return RET_FAIL;
|
||||
}
|
||||
seconds = onearg(player->argp[1], "Time until update [in seconds]? ");
|
||||
if (seconds < 0)
|
||||
return RET_FAIL;
|
||||
|
||||
pr("Scheduling update in %d second(s)\n", seconds);
|
||||
if (update_trigger(seconds) < 0)
|
||||
if (update_trigger() < 0)
|
||||
return RET_FAIL;
|
||||
return RET_OK;
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
* upda.c: Give the time of the next update
|
||||
*
|
||||
* Known contributors to this file:
|
||||
*
|
||||
* Markus Armbruster, 2007
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -36,7 +36,6 @@
|
|||
#include "commands.h"
|
||||
#include "optlist.h"
|
||||
#include "server.h"
|
||||
#include "wantupd.h"
|
||||
|
||||
/*
|
||||
* Tell what the update policy is, and when the next update
|
||||
|
@ -47,7 +46,7 @@ upda(void)
|
|||
{
|
||||
FILE *fp;
|
||||
struct mob_acc_globals timestamps;
|
||||
time_t now, next, delta;
|
||||
time_t now, next, stop;
|
||||
|
||||
if (opt_MOB_ACCESS) {
|
||||
if ((fp = fopen(timestampfil, "rb")) == NULL)
|
||||
|
@ -70,66 +69,41 @@ upda(void)
|
|||
pr("UPDATES ARE DISABLED!\n");
|
||||
|
||||
(void)time(&now);
|
||||
switch (update_policy) {
|
||||
case UDP_NORMAL:
|
||||
next_update_time(&now, &next, &delta);
|
||||
next = update_time[0];
|
||||
if (next) {
|
||||
pr("\nUpdates occur at times specified by the ETU rates.\n\n");
|
||||
pr("The next update is at %19.19s.\n", ctime(&next));
|
||||
break;
|
||||
case UDP_TIMES:
|
||||
next_update_time(&now, &next, &delta);
|
||||
pr("\nUpdates occur at scheduled times.\n\n");
|
||||
pr("The next update is at %19.19s.\n", ctime(&next));
|
||||
break;
|
||||
case UDP_BLITZ:
|
||||
next_update_time(&now, &next, &delta);
|
||||
pr("\nBlitz Updates occur every %d minutes. \n\n", blitz_time);
|
||||
pr("The next update is at %19.19s.\n", ctime(&next));
|
||||
break;
|
||||
case UDP_NOREG:
|
||||
} else {
|
||||
pr("There are no regularly scheduled updates.\n");
|
||||
break;
|
||||
default:
|
||||
pr("Update policy is inconsistent.\n");
|
||||
}
|
||||
pr("The current time is %19.19s.\n\n", ctime(&now));
|
||||
|
||||
if (update_window) {
|
||||
now = update_time - update_window;
|
||||
next_update_time(&now, &next, &delta);
|
||||
if (next && update_window) {
|
||||
pr("The next update window starts at %19.19s.\n",
|
||||
ctime(&next));
|
||||
next += update_window;
|
||||
pr("The next update window stops at %19.19s.\n", ctime(&next));
|
||||
stop = next + update_window;
|
||||
pr("The next update window stops at %19.19s.\n", ctime(&stop));
|
||||
}
|
||||
|
||||
switch (update_demandpolicy) {
|
||||
case UDDEM_TMCHECK:
|
||||
next_update_check_time(&now, &next, &delta);
|
||||
pr("Demand updates occur at update CHECK times.\n");
|
||||
pr("The next update check is at %19.19s.\n",
|
||||
ctime(&next));
|
||||
break;
|
||||
case UDDEM_COMSET:
|
||||
pr("Demand updates occur right after the demand is set.\n");
|
||||
break;
|
||||
case UDDEM_DISABLE:
|
||||
break;
|
||||
switch (update_demand) {
|
||||
case UPD_DEMAND_NONE:
|
||||
default:
|
||||
CANT_REACH();
|
||||
pr("Update demand policy is inconsistent.\n");
|
||||
}
|
||||
|
||||
if ((update_policy == UDP_TIMES) ||
|
||||
(update_demandpolicy == UDDEM_TMCHECK)) {
|
||||
if (*update_times != 0)
|
||||
pr("The update schedule is: %s\n", update_times);
|
||||
}
|
||||
|
||||
if (update_demandpolicy != UDDEM_DISABLE) {
|
||||
if (*update_demandtimes != 0)
|
||||
break;
|
||||
case UPD_DEMAND_SCHED:
|
||||
pr("Demand updates occur at update CHECK times.\n");
|
||||
if (next) {
|
||||
pr("The next update check is at %19.19s.\n",
|
||||
ctime(&next));
|
||||
}
|
||||
pr("Demand updates require %d country(s) to want one.\n",
|
||||
update_wantmin);
|
||||
break;
|
||||
case UPD_DEMAND_ASYNC:
|
||||
pr("Demand updates occur right after the demand is set.\n");
|
||||
if (*update_demandtimes != 0) {
|
||||
pr("Demand updates are allowed during: %s\n",
|
||||
update_demandtimes);
|
||||
}
|
||||
pr("Demand updates require %d country(s) to want one.\n",
|
||||
update_wantmin);
|
||||
}
|
||||
|
|
|
@ -54,7 +54,6 @@
|
|||
#include "commands.h"
|
||||
#include "optlist.h"
|
||||
#include "server.h"
|
||||
#include "wantupd.h"
|
||||
|
||||
int
|
||||
zdon(void)
|
||||
|
@ -70,7 +69,8 @@ zdon(void)
|
|||
int dowant;
|
||||
char buf[1024];
|
||||
|
||||
if (update_demandpolicy == UDDEM_DISABLE) {
|
||||
if (update_demand != UPD_DEMAND_SCHED
|
||||
&& update_demand != UPD_DEMAND_ASYNC) {
|
||||
pr("Demand updates are not enabled.\n");
|
||||
return RET_FAIL;
|
||||
}
|
||||
|
@ -136,7 +136,7 @@ zdon(void)
|
|||
|
||||
if (!checking && wantupd && demandupdatecheck()) {
|
||||
pr("Here goes...\n");
|
||||
update_trigger(0);
|
||||
update_trigger();
|
||||
}
|
||||
return RET_OK;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue