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.
This commit is contained in:
parent
eee8af4db2
commit
fae5448134
3 changed files with 14 additions and 7 deletions
|
@ -50,9 +50,12 @@ log_limit:
|
||||||
|
|
||||||
log_file:
|
log_file:
|
||||||
text log_limit {
|
text log_limit {
|
||||||
this_log->rf = rf_open(new_config->pool, $1, "a");
|
if (!parse_and_exit)
|
||||||
if (!this_log->rf) cf_error("Unable to open log file '%s': %m", $1);
|
{
|
||||||
this_log->fh = rf_file(this_log->rf);
|
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->pos = -1;
|
||||||
this_log->filename = $1;
|
this_log->filename = $1;
|
||||||
}
|
}
|
||||||
|
@ -88,9 +91,12 @@ conf: mrtdump_base ;
|
||||||
mrtdump_base:
|
mrtdump_base:
|
||||||
MRTDUMP PROTOCOLS mrtdump_mask ';' { new_config->proto_default_mrtdump = $3; }
|
MRTDUMP PROTOCOLS mrtdump_mask ';' { new_config->proto_default_mrtdump = $3; }
|
||||||
| MRTDUMP text ';' {
|
| MRTDUMP text ';' {
|
||||||
struct rfile *f = rf_open(new_config->pool, $2, "a");
|
if (!parse_and_exit)
|
||||||
if (!f) cf_error("Unable to open MRTDump file '%s': %m", $2);
|
{
|
||||||
new_config->mrtdump_file = rf_fileno(f);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
@ -658,7 +658,7 @@ signal_init(void)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static char *opt_list = "bc:dD:ps:P:u:g:flRh";
|
static char *opt_list = "bc:dD:ps:P:u:g:flRh";
|
||||||
static int parse_and_exit;
|
int parse_and_exit;
|
||||||
char *bird_name;
|
char *bird_name;
|
||||||
static char *use_user;
|
static char *use_user;
|
||||||
static char *use_group;
|
static char *use_group;
|
||||||
|
|
|
@ -20,6 +20,7 @@ struct rfile;
|
||||||
/* main.c */
|
/* main.c */
|
||||||
|
|
||||||
extern char *bird_name;
|
extern char *bird_name;
|
||||||
|
extern int parse_and_exit;
|
||||||
void async_config(void);
|
void async_config(void);
|
||||||
void async_dump(void);
|
void async_dump(void);
|
||||||
void async_shutdown(void);
|
void async_shutdown(void);
|
||||||
|
|
Loading…
Reference in a new issue