diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2009-11-19 11:44:17 +0100 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2009-11-19 11:44:17 +0100 |
commit | a4644ed6ab32c098b755bdac03498634b2794409 (patch) | |
tree | 6b705b7ad27b61a9416d711e6c9fb3127aa1e612 | |
parent | 3f9b7bfe9ff050430a5886b22a5ab11b5f253048 (diff) |
Implement option to exit after config file parsing.
-rw-r--r-- | doc/bird.sgml | 5 | ||||
-rw-r--r-- | sysdep/unix/main.c | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/doc/bird.sgml b/doc/bird.sgml index db9a7474..4b72ac61 100644 --- a/doc/bird.sgml +++ b/doc/bird.sgml @@ -129,7 +129,10 @@ options. The most important ones are: enable debug messages and run bird in foreground. <tag>-D <m/filename of debug log/</tag> - log debugging information to given file instead of stderr + log debugging information to given file instead of stderr. + + <tag>-p</tag> + just parse the config file and exit. <tag>-s <m/name of communication socket/</tag> use given filename for a socket for communications with the client, default is <it/prefix/<file>/var/run/bird.ctl</file>. diff --git a/sysdep/unix/main.c b/sysdep/unix/main.c index 5e4aa97a..533754ea 100644 --- a/sysdep/unix/main.c +++ b/sysdep/unix/main.c @@ -365,7 +365,7 @@ signal_init(void) * Parsing of command-line arguments */ -static char *opt_list = "c:dD:s:"; +static char *opt_list = "c:dD:ps:"; static void usage(void) @@ -374,6 +374,8 @@ usage(void) exit(1); } +int parse_and_exit; + static void parse_args(int argc, char **argv) { @@ -402,6 +404,9 @@ parse_args(int argc, char **argv) log_init_debug(optarg); debug_flag |= 2; break; + case 'p': + parse_and_exit = 1; + break; case 's': path_control_socket = optarg; break; @@ -444,6 +449,9 @@ main(int argc, char **argv) read_config(); + if (parse_and_exit) + exit(0); + if (!debug_flag) { pid_t pid = fork(); |