From: Sven Eckelmann Date: Sun, 1 Dec 2013 14:39:00 +0100 Subject: Allow one to disable forking to background in debug_mode 0 --- posix/init.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) --- a/posix/init.c +++ b/posix/init.c @@ -44,6 +44,7 @@ #define IOCSETDEV 1 int8_t stop; +int no_detach = 0; @@ -159,6 +160,7 @@ void apply_init_args( int argc, char *ar {"purge-timeout", required_argument, 0, 'q'}, {"disable-aggregation", no_argument, 0, 'x'}, {"disable-client-nat", no_argument, 0, 'z'}, + {"no-detach", no_argument, 0, 'D'}, {0, 0, 0, 0} }; @@ -169,7 +171,7 @@ void apply_init_args( int argc, char *ar if ( strstr( SOURCE_VERSION, "-" ) != NULL ) printf( "WARNING: You are using the unstable batman branch. If you are interested in *using* batman get the latest stable release !\n" ); - while ( ( optchar = getopt_long( argc, argv, "a:A:bcd:hHio:g:p:r:s:vV", long_options, &option_index ) ) != -1 ) { + while ( ( optchar = getopt_long( argc, argv, "a:A:bcd:hHio:g:p:r:s:vVD", long_options, &option_index ) ) != -1 ) { switch ( optchar ) { @@ -381,6 +383,11 @@ void apply_init_args( int argc, char *ar found_args++; break; + case 'D': + no_detach = 1; + found_args++; + break; + case 'h': default: usage(); @@ -539,12 +546,14 @@ void apply_init_args( int argc, char *ar /* daemonize */ if (debug_level == 0) { - if (my_daemon() < 0) { + if (!no_detach) { + if (my_daemon() < 0) { - printf("Error - can't fork to background: %s\n", strerror(errno)); - restore_defaults(); - exit(EXIT_FAILURE); + printf("Error - can't fork to background: %s\n", strerror(errno)); + restore_defaults(); + exit(EXIT_FAILURE); + } } openlog("batmand", LOG_PID, LOG_DAEMON);