From a4644ed6ab32c098b755bdac03498634b2794409 Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Thu, 19 Nov 2009 11:44:17 +0100 Subject: [PATCH] Implement option to exit after config file parsing. --- doc/bird.sgml | 5 ++++- 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. -D - log debugging information to given file instead of stderr + log debugging information to given file instead of stderr. + + -p + just parse the config file and exit. -s use given filename for a socket for communications with the client, default is /var/run/bird.ctl. 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();