From: Christian Brauner Date: Sat, 30 Jan 2021 10:07:43 +0000 (+0100) Subject: log: add lxc_log_get_fd() X-Git-Tag: lxc-5.0.0~312^2~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c422f3afa60f0e034e5f9d92d23cb4d5aa922dcd;p=thirdparty%2Flxc.git log: add lxc_log_get_fd() Signed-off-by: Christian Brauner --- diff --git a/src/lxc/log.c b/src/lxc/log.c index 522a576ad..bc60083fe 100644 --- a/src/lxc/log.c +++ b/src/lxc/log.c @@ -46,7 +46,7 @@ int lxc_log_fd = -EBADF; static bool wants_syslog = false; static int lxc_quiet_specified; -int lxc_log_use_global_fd; +bool lxc_log_use_global_fd = false; static int lxc_loglevel_specified; static char log_prefix[LXC_LOG_PREFIX_SIZE] = "lxc"; @@ -92,6 +92,20 @@ static const char *lxc_log_get_container_name(void) return log_vmname; } +int lxc_log_get_fd(void) +{ + int fd_log = -EBADF; + +#ifndef NO_LXC_CONF + if (current_config && !lxc_log_use_global_fd) + fd_log = current_config->logfd; +#endif + if (fd_log < 0) + fd_log = lxc_log_fd; + + return fd_log; +} + static char *lxc_log_get_va_msg(struct lxc_log_event *event) { __do_free char *msg = NULL; @@ -659,7 +673,7 @@ int lxc_log_init(struct lxc_log *log) if (ret < 0) return log_error_errno(-1, errno, "Failed to enable logfile"); - lxc_log_use_global_fd = 1; + lxc_log_use_global_fd = true; } else { /* if no name was specified, there nothing to do */ if (!log->name) diff --git a/src/lxc/log.h b/src/lxc/log.h index 0361db40f..68e87eb06 100644 --- a/src/lxc/log.h +++ b/src/lxc/log.h @@ -85,7 +85,7 @@ struct lxc_log_category { }; #ifndef NO_LXC_CONF -extern int lxc_log_use_global_fd; +extern bool lxc_log_use_global_fd; #endif /* @@ -574,5 +574,6 @@ __hidden extern const char *lxc_log_get_file(void); __hidden extern void lxc_log_set_prefix(const char *prefix); __hidden extern const char *lxc_log_get_prefix(void); __hidden extern void lxc_log_options_no_override(void); +__hidden extern int lxc_log_get_fd(void); #endif /* __LXC_LOG_H */