X-Git-Url: https://git.distorted.org.uk/~mdw/fwd/blobdiff_plain/9155ea97b695b6eb5fca1ee79f57b334f6c4ef53..096c89c34505cadba1fc6e7a5367273d5c5bea47:/fwd.c diff --git a/fwd.c b/fwd.c index d80275b..b621f45 100644 --- a/fwd.c +++ b/fwd.c @@ -241,7 +241,7 @@ void fw_log(time_t t, const char *fmt, ...) if (flags & FW_QUIET) return; - if (t == -1) + if (t == NOW) t = time(0); tm = localtime(&t); DENSURE(&d, 64); @@ -305,7 +305,7 @@ static void fw_tidy(int n, void *p) default: abort(); } - fw_log(-1, "closing down gracefully on %s", sn); + fw_log(NOW, "closing down gracefully on %s", sn); source_killall(); } @@ -327,7 +327,7 @@ static void fw_die(int n, void *p) default: abort(); } - fw_log(-1, "closing down abruptly on %s", sn); + fw_log(NOW, "closing down abruptly on %s", sn); source_killall(); endpt_killall(); } @@ -350,20 +350,20 @@ static void fw_reload(int n, void *p) assert(n == SIGHUP); if (!conffiles) { - fw_log(-1, "no configuration files to reload: ignoring SIGHUP"); + fw_log(NOW, "no configuration files to reload: ignoring SIGHUP"); return; } - fw_log(-1, "reloading configuration files..."); + fw_log(NOW, "reloading configuration files..."); source_killall(); scan_create(&sc); for (cf = conffiles; cf; cf = cf->next) { if ((fp = fopen(cf->name, "r")) == 0) - fw_log(-1, "error loading `%s': %s", cf->name, strerror(errno)); + fw_log(NOW, "error loading `%s': %s", cf->name, strerror(errno)); else scan_add(&sc, scan_file(fp, cf->name, 0)); } parse(&sc); - fw_log(-1, "... reload completed OK"); + fw_log(NOW, "... reload completed OK"); } /*----- Startup and options parsing ---------------------------------------*/ @@ -487,7 +487,7 @@ int main(int argc, char *argv[]) /* --- Standard GNU help options --- */ - { "help", 0, 0, 'h' }, + { "help", 0, 0, 'h' }, { "version", 0, 0, 'v' }, { "usage", 0, 0, 'u' }, @@ -514,7 +514,7 @@ int main(int argc, char *argv[]) { 0, 0, 0, 0 } }; - int i = mdwopt(argc, argv, "+hvu" "GO" "f:dp:ls:g:", opts, 0, 0, 0); + int i = mdwopt(argc, argv, "+hvu" "GO" "f:dp:lqs:g:", opts, 0, 0, 0); if (i < 0) break; @@ -650,7 +650,8 @@ int main(int argc, char *argv[]) _exit(0); close(0); close(1); close(2); - chdir("/"); + if (chdir("/")) + die(1, "couldn't change to root directory: %s", strerror(errno)); setsid(); kid = fork(); @@ -701,10 +702,10 @@ int main(int argc, char *argv[]) if (!sel_select(sel)) selerr = 0; else if (errno != EINTR && errno != EAGAIN) { - fw_log(-1, "error from select: %s", strerror(errno)); + fw_log(NOW, "error from select: %s", strerror(errno)); selerr++; if (selerr > 8) { - fw_log(-1, "too many consecutive select errors: bailing out"); + fw_log(NOW, "too many consecutive select errors: bailing out"); exit(EXIT_FAILURE); } }