From: Tobias Brunner Date: Thu, 31 May 2018 09:36:15 +0000 (+0200) Subject: daemon: Allow configuration of logfile path as value X-Git-Tag: 5.7.0dr5~27^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b9745618cdae3637c10783291fab7f2ed4cb48b2;p=thirdparty%2Fstrongswan.git daemon: Allow configuration of logfile path as value Some characters are not allowed in section names, this way they can still be used in paths of log files. --- diff --git a/conf/options/charon-logging.opt b/conf/options/charon-logging.opt index 2bbb5dce42..31ebf6c32a 100644 --- a/conf/options/charon-logging.opt +++ b/conf/options/charon-logging.opt @@ -5,6 +5,10 @@ charon.filelog {} charon.filelog. { # } is the full path to the log file. +charon.filelog..path = + Optional path to the log file. Overrides the section name, may be used + if the path contains characters that aren't allowed in section names. + charon.filelog..default = 1 Default loglevel. diff --git a/src/libcharon/daemon.c b/src/libcharon/daemon.c index e4b8197105..c02ab28f2b 100644 --- a/src/libcharon/daemon.c +++ b/src/libcharon/daemon.c @@ -480,25 +480,29 @@ static void load_sys_logger(private_daemon_t *this, char *facility, /** * Load the given file logger configured in strongswan.conf */ -static void load_file_logger(private_daemon_t *this, char *filename, +static void load_file_logger(private_daemon_t *this, char *section, linked_list_t *current_loggers) { file_logger_t *file_logger; debug_t group; level_t def; bool add_ms, ike_name, flush_line, append; - char *time_format; + char *time_format, *filename; time_format = lib->settings->get_str(lib->settings, - "%s.filelog.%s.time_format", NULL, lib->ns, filename); + "%s.filelog.%s.time_format", NULL, lib->ns, section); add_ms = lib->settings->get_bool(lib->settings, - "%s.filelog.%s.time_add_ms", FALSE, lib->ns, filename); + "%s.filelog.%s.time_add_ms", FALSE, lib->ns, section); ike_name = lib->settings->get_bool(lib->settings, - "%s.filelog.%s.ike_name", FALSE, lib->ns, filename); + "%s.filelog.%s.ike_name", FALSE, lib->ns, section); flush_line = lib->settings->get_bool(lib->settings, - "%s.filelog.%s.flush_line", FALSE, lib->ns, filename); + "%s.filelog.%s.flush_line", FALSE, lib->ns, section); append = lib->settings->get_bool(lib->settings, - "%s.filelog.%s.append", TRUE, lib->ns, filename); + "%s.filelog.%s.append", TRUE, lib->ns, section); + time_format = lib->settings->get_str(lib->settings, + "%s.filelog.%s.time_format", NULL, lib->ns, section); + filename = lib->settings->get_str(lib->settings, + "%s.filelog.%s.path", section, lib->ns, section); file_logger = add_file_logger(this, filename, current_loggers); if (!file_logger) @@ -510,12 +514,12 @@ static void load_file_logger(private_daemon_t *this, char *filename, file_logger->open(file_logger, flush_line, append); def = lib->settings->get_int(lib->settings, "%s.filelog.%s.default", 1, - lib->ns, filename); + lib->ns, section); for (group = 0; group < DBG_MAX; group++) { file_logger->set_level(file_logger, group, lib->settings->get_int(lib->settings, "%s.filelog.%s.%N", def, - lib->ns, filename, debug_lower_names, group)); + lib->ns, section, debug_lower_names, group)); } charon->bus->add_logger(charon->bus, &file_logger->logger); }