Commit fae54481 authored by Ondrej Zajicek (work)'s avatar Ondrej Zajicek (work)
Browse files

Log: Do not open logfiles when parse-and-exit option is active

This is a quick workaround for an issue where configured logfiles are
opened/created during parsing of a config file even when parse-and-exit
option is active. We should later refactor the logging code to avoid
opening log during parsing altogether.
parent eee8af4d
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -50,9 +50,12 @@ log_limit:

log_file:
   text log_limit {
     if (!parse_and_exit)
     {
       this_log->rf = rf_open(new_config->pool, $1, "a");
       if (!this_log->rf) cf_error("Unable to open log file '%s': %m", $1);
       this_log->fh = rf_file(this_log->rf);
     }
     this_log->pos = -1;
     this_log->filename = $1;
   }
@@ -88,10 +91,13 @@ conf: mrtdump_base ;
mrtdump_base:
   MRTDUMP PROTOCOLS mrtdump_mask ';' { new_config->proto_default_mrtdump = $3; }
 | MRTDUMP text ';' {
     if (!parse_and_exit)
     {
       struct rfile *f = rf_open(new_config->pool, $2, "a");
       if (!f) cf_error("Unable to open MRTDump file '%s': %m", $2);
       new_config->mrtdump_file = rf_fileno(f);
     }
   }
 ;


+1 −1
Original line number Diff line number Diff line
@@ -658,7 +658,7 @@ signal_init(void)
 */

static char *opt_list = "bc:dD:ps:P:u:g:flRh";
static int parse_and_exit;
int parse_and_exit;
char *bird_name;
static char *use_user;
static char *use_group;
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ struct rfile;
/* main.c */

extern char *bird_name;
extern int parse_and_exit;
void async_config(void);
void async_dump(void);
void async_shutdown(void);