diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-11-15 11:17:36 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-11-15 11:17:36 +0200 |
commit | 2cec73c97140588cadad597391be6c13ee0ab2da (patch) | |
tree | 08eba8c87b786027c91dd3c9b570767ce0688c3c | |
parent | 82ee306d977e2fcb88277b85920b7863ead36312 (diff) | |
download | nssync-master.tar.gz nssync-master.tar.bz2 |
* grecs: Update.
* src/cmdline.opt: New option --pidfile
* src/nssync.c: Pidfile from command line overrides that from configuration.
* src/config.c (config_parse): Fix coredump on empty synclist
m--------- | grecs | 0 | ||||
-rw-r--r-- | src/cmdline.opt | 6 | ||||
-rw-r--r-- | src/config.c | 9 | ||||
-rw-r--r-- | src/nssync.c | 4 |
4 files changed, 13 insertions, 6 deletions
diff --git a/grecs b/grecs -Subproject 6020d6243c7fdf657da768b3fb2efa1244665d5 +Subproject 3299cf1ccb1c596969fcfd91253e10d5482eacf diff --git a/src/cmdline.opt b/src/cmdline.opt index 221133e..23c6bcb 100644 --- a/src/cmdline.opt +++ b/src/cmdline.opt @@ -61,6 +61,12 @@ BEGIN config_file = optarg; END +OPTION(pidfile,p,FILE, + [<write PID to FILE>]) +BEGIN + cli_pidfile = optarg; +END + OPTION(cron,,, [<run as a periodic cron job (default)>]) BEGIN diff --git a/src/config.c b/src/config.c index 5ff9280..6ddb2ea 100644 --- a/src/config.c +++ b/src/config.c @@ -388,7 +388,6 @@ synclist_fixup() void config_parse() { - int err = 0; struct grecs_node *tree = grecs_parse(config_file); if (!tree) exit(EX_CONFIG); @@ -399,19 +398,17 @@ config_parse() if (!synclist) { error("nothing to do!"); - err = 1; + exit(EX_CONFIG); } if (synclist_fixup()) - err = 1; + exit(EX_CONFIG); if (sql_host_fixup()) - err = 1; + exit(EX_CONFIG); source_named_conf(); - if (err) - exit(EX_CONFIG); if (lint_mode) exit(0); if (!tempdir) { diff --git a/src/nssync.c b/src/nssync.c index d10ce05..8f4fad2 100644 --- a/src/nssync.c +++ b/src/nssync.c @@ -30,6 +30,7 @@ int debug_level; char *config_file = SYSCONFDIR "/nssync.conf"; char *slave_status_file; char *pidfile; +char *cli_pidfile; int force; char *tempdir; char *reload_command = "/usr/sbin/rndc reload"; @@ -702,6 +703,9 @@ main(int argc, char **argv) EX_CONFIG : 0); config_parse(); + if (cli_pidfile) + pidfile = cli_pidfile; + check_pidfile(); if (check_ns) |