diff --git a/doc/bird.sgml b/doc/bird.sgml
index d08b0c17..1f494cce 100644
--- a/doc/bird.sgml
+++ b/doc/bird.sgml
@@ -132,7 +132,8 @@ options. The most important ones are:
log debugging information to given file instead of stderr.
-p
- just parse the config file and exit.
+ just parse the config file and exit. Return value is zero if the config file is valid,
+ nonzero if there are some errors.
-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 533754ea..6107b226 100644
--- a/sysdep/unix/main.c
+++ b/sysdep/unix/main.c
@@ -370,7 +370,7 @@ static char *opt_list = "c:dD:ps:";
static void
usage(void)
{
- fprintf(stderr, "Usage: bird [-c ] [-d] [-D ] [-s ]\n");
+ fprintf(stderr, "Usage: bird [-c ] [-d] [-D ] [-p] [-s ]\n");
exit(1);
}
@@ -434,7 +434,8 @@ main(int argc, char **argv)
log_init_debug("");
log_init(debug_flag, 1);
- test_old_bird(path_control_socket);
+ if (!parse_and_exit)
+ test_old_bird(path_control_socket);
DBG("Initializing.\n");
resource_init();