[lxc-devel] [lxc/master] add default log priority & cleanups

2xsec on Github lxc-bot at linuxcontainers.org
Sat Jul 28 16:15:44 UTC 2018


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 708 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20180728/83955a83/attachment.bin>
-------------- next part --------------
From 1fba92fc13e29a45cd998d445d7dbdfb89fbdba4 Mon Sep 17 00:00:00 2001
From: 2xsec <dh48.jeong at samsung.com>
Date: Sun, 29 Jul 2018 00:21:05 +0900
Subject: [PATCH 1/4] log: add default log priority

Signed-off-by: 2xsec <dh48.jeong at samsung.com>
---
 src/lxc/log.c               | 107 ++++++++++++++++++++++++++++----------------
 src/lxc/lxccontainer.h      |   1 +
 src/lxc/tools/arguments.c   |   1 +
 src/lxc/tools/arguments.h   |   1 +
 src/lxc/tools/lxc_unshare.c |  38 ++++++++--------
 5 files changed, 90 insertions(+), 58 deletions(-)

diff --git a/src/lxc/log.c b/src/lxc/log.c
index dafda1b95..c2d3fe25e 100644
--- a/src/lxc/log.c
+++ b/src/lxc/log.c
@@ -524,7 +524,7 @@ static int __lxc_log_set_file(const char *fname, int create_dirs)
 
 	if (strlen(fname) == 0) {
 		log_fname = NULL;
-		return 0;
+		return -1;
 	}
 
 #if USE_CONFIGPATH_LOGS
@@ -561,6 +561,57 @@ static int _lxc_log_set_file(const char *name, const char *lxcpath, int create_d
 	return ret;
 }
 
+static int lxc_log_enable_logfile(struct lxc_log *log)
+{
+	int ret;
+
+	if (!log)
+		return -1;
+
+	if (log->file) {
+		if (strncmp(log->file, "none", strlen(log->file)) == 0)
+			return 0;
+
+		ret = __lxc_log_set_file(log->file, 1);
+		if (ret < 0)
+			return -1;
+
+		lxc_log_use_global_fd = 1;
+	} else {
+		/* if no name was specified, there nothing to do */
+		if (!log->name)
+			return 0;
+
+		ret = -1;
+
+		if (!log->lxcpath)
+			log->lxcpath = LOGPATH;
+
+		/* try LOGPATH if lxcpath is the default for the privileged containers */
+		if (!geteuid() && strncmp(LXCPATH, log->lxcpath, strlen(LXCPATH)) == 0)
+			ret = _lxc_log_set_file(log->name, NULL, 0);
+
+		/* try in lxcpath */
+		if (ret < 0)
+			ret = _lxc_log_set_file(log->name, log->lxcpath, 1);
+
+		/* try LOGPATH in case its writable by the caller */
+		if (ret < 0)
+			ret = _lxc_log_set_file(log->name, NULL, 0);
+	}
+
+	/*
+	 * If !file, that is, if the user did not request this logpath, then
+	 * ignore failures and continue logging to console
+	 */
+	if (!log->file && ret != 0) {
+		INFO("Ignoring failure to open default logfile");
+		ret = 0;
+	}
+
+	return ret;
+}
+
 extern int lxc_log_syslog(int facility)
 {
 	struct lxc_log_appender *appender;
@@ -604,6 +655,9 @@ extern int lxc_log_init(struct lxc_log *log)
 	int lxc_priority = LXC_LOG_LEVEL_ERROR;
 	int ret;
 
+	if (!log)
+		return -1;
+
 	if (lxc_log_fd != -1) {
 		WARN("lxc_log_init called with log already initialized");
 		return 0;
@@ -617,10 +671,9 @@ extern int lxc_log_init(struct lxc_log *log)
 		lxc_loglevel_specified = 1;
 	}
 
-	if (!lxc_quiet_specified) {
+	if (!lxc_quiet_specified)
 		if (!log->quiet)
-			lxc_log_category_lxc.appender->next = &log_appender_stderr;
-	}
+			lxc_log_category_lxc.appender = &log_appender_stderr;
 
 	if (log->prefix)
 		lxc_log_set_prefix(log->prefix);
@@ -628,44 +681,20 @@ extern int lxc_log_init(struct lxc_log *log)
 	if (log->name)
 		log_vmname = strdup(log->name);
 
-	if (log->file) {
-		if (strcmp(log->file, "none") == 0)
-			return 0;
-		ret = __lxc_log_set_file(log->file, 1);
-		lxc_log_use_global_fd = 1;
-	} else {
-		/* if no name was specified, there nothing to do */
-		if (!log->name)
-			return 0;
-
-		ret = -1;
-
-		if (!log->lxcpath)
-			log->lxcpath = LOGPATH;
-
-		/* try LOGPATH if lxcpath is the default for the privileged containers */
-		if (!geteuid() && strcmp(LXCPATH, log->lxcpath) == 0)
-			ret = _lxc_log_set_file(log->name, NULL, 0);
-
-		/* try in lxcpath */
-		if (ret < 0)
-			ret = _lxc_log_set_file(log->name, log->lxcpath, 1);
-
-		/* try LOGPATH in case its writable by the caller */
-		if (ret < 0)
-			ret = _lxc_log_set_file(log->name, NULL, 0);
-	}
+	if (!log->default_level || log->file) {
+		ret = lxc_log_enable_logfile(log);
+		if (ret < 0) {
+			ERROR("Failed to enable logfile");
+			return -1;
+		}
 
-	/*
-	 * If !file, that is, if the user did not request this logpath, then
-	 * ignore failures and continue logging to console
-	 */
-	if (!log->file && ret != 0) {
-		INFO("Ignoring failure to open default logfile");
-		ret = 0;
+		if (lxc_log_fd != -1) {
+			lxc_log_category_lxc.appender = &log_appender_logfile;
+			lxc_log_category_lxc.appender->next = &log_appender_stderr;
+		}
 	}
 
-	return ret;
+	return 0;
 }
 
 /*
diff --git a/src/lxc/lxccontainer.h b/src/lxc/lxccontainer.h
index fdabbe474..947a3fe48 100644
--- a/src/lxc/lxccontainer.h
+++ b/src/lxc/lxccontainer.h
@@ -1101,6 +1101,7 @@ struct lxc_log {
 	const char *file;
 	const char *level;
 	const char *prefix;
+	bool default_level;
 	bool quiet;
 };
 
diff --git a/src/lxc/tools/arguments.c b/src/lxc/tools/arguments.c
index 89af23c7f..f7befca24 100644
--- a/src/lxc/tools/arguments.c
+++ b/src/lxc/tools/arguments.c
@@ -218,6 +218,7 @@ extern int lxc_arguments_parse(struct lxc_arguments *args, int argc,
 			break;
 		case 'l':
 			args->log_priority = optarg;
+			args->default_priority = false;
 			break;
 		case 'q':
 			args->quiet = 1;
diff --git a/src/lxc/tools/arguments.h b/src/lxc/tools/arguments.h
index 43b3a86e2..012586421 100644
--- a/src/lxc/tools/arguments.h
+++ b/src/lxc/tools/arguments.h
@@ -48,6 +48,7 @@ struct lxc_arguments {
 	const char *name;
 	char *log_file;
 	char *log_priority;
+	bool default_priority;
 	int quiet;
 	int daemonize;
 	const char *rcfile;
diff --git a/src/lxc/tools/lxc_unshare.c b/src/lxc/tools/lxc_unshare.c
index 720ecb378..de9b7f83f 100644
--- a/src/lxc/tools/lxc_unshare.c
+++ b/src/lxc/tools/lxc_unshare.c
@@ -80,8 +80,8 @@ static const struct option my_longopts[] = {
 };
 
 static struct lxc_arguments my_args = {
-	.progname     = "lxc-unshare",
-	.help         = "\
+	.progname         = "lxc-unshare",
+	.help             = "\
 -s NAMESPACES COMMAND\n\
 \n\
 lxc-unshare run a COMMAND in a new set of NAMESPACES\n\
@@ -99,11 +99,13 @@ Options :\n\
   -d, --daemon      Daemonize (do not wait for container to exit)\n\
   -M, --remount     Remount default fs inside container (/proc /dev/shm /dev/mqueue)\n\
 ",
-	.options      = my_longopts,
-	.parser       = my_parser,
-	.checker      = NULL,
-	.daemonize    = 0,
-	.pidfile      = NULL,
+	.options          = my_longopts,
+	.parser           = my_parser,
+	.checker          = NULL,
+	.log_priority     = "ERROR",
+	.default_priority = true,
+	.daemonize        = 0,
+	.pidfile          = NULL,
 };
 
 static int my_parser(struct lxc_arguments *args, int c, char *arg)
@@ -325,19 +327,17 @@ int main(int argc, char *argv[])
 	if (lxc_arguments_parse(&my_args, argc, argv))
 		exit(EXIT_FAILURE);
 
-	/* Only create log if explicitly instructed */
-	if (my_args.log_file || my_args.log_priority) {
-		log.name = my_args.name;
-		log.file = my_args.log_file;
-		log.level = my_args.log_priority;
-		log.prefix = my_args.progname;
-		log.quiet = my_args.quiet;
-		log.lxcpath = my_args.lxcpath[0];
+	log.name = my_args.name;
+	log.file = my_args.log_file;
+	log.level = my_args.log_priority;
+	log.default_level = my_args.default_priority;
+	log.prefix = my_args.progname;
+	log.quiet = my_args.quiet;
+	log.lxcpath = my_args.lxcpath[0];
 
-		if (lxc_log_init(&log)) {
-			free_ifname_list();
-			exit(EXIT_FAILURE);
-		}
+	if (lxc_log_init(&log)) {
+		free_ifname_list();
+		exit(EXIT_FAILURE);
 	}
 
 	if (!*my_args.argv) {

From 49f985aa7c36070b9204aa7dcb323d1f7d2829c5 Mon Sep 17 00:00:00 2001
From: 2xsec <dh48.jeong at samsung.com>
Date: Sun, 29 Jul 2018 00:29:06 +0900
Subject: [PATCH 2/4] log: cleanups

Signed-off-by: 2xsec <dh48.jeong at samsung.com>
---
 src/lxc/log.c | 42 ++++++++++++++++++++++--------------------
 1 file changed, 22 insertions(+), 20 deletions(-)

diff --git a/src/lxc/log.c b/src/lxc/log.c
index c2d3fe25e..b22912291 100644
--- a/src/lxc/log.c
+++ b/src/lxc/log.c
@@ -127,13 +127,13 @@ static int log_append_syslog(const struct lxc_log_appender *appender,
 	}
 
 	syslog(lxc_log_priority_to_syslog(event->priority),
-		"%s%s %s - %s:%s:%d - %s" ,
-		log_container_name ? log_container_name : "",
-		log_container_name ? ":" : "",
-		event->category,
-		event->locinfo->file, event->locinfo->func,
-		event->locinfo->line,
-		msg);
+	       "%s%s %s - %s:%s:%d - %s",
+	       log_container_name ? log_container_name : "",
+	       log_container_name ? ":" : "",
+	       event->category,
+	       event->locinfo->file, event->locinfo->func,
+	       event->locinfo->line,
+	       msg);
 	free(msg);
 
 	return 0;
@@ -156,10 +156,10 @@ static int log_append_stderr(const struct lxc_log_appender *appender,
 #endif
 
 	fprintf(stderr, "%s: %s%s", log_prefix,
-		log_container_name ? log_container_name : "",
-		log_container_name ? ": " : "");
+	        log_container_name ? log_container_name : "",
+	        log_container_name ? ": " : "");
 	fprintf(stderr, "%s: %s: %d ", event->locinfo->file,
-		event->locinfo->func, event->locinfo->line);
+	        event->locinfo->func, event->locinfo->line);
 	vfprintf(stderr, event->fmt, *event->vap);
 	fprintf(stderr, "\n");
 
@@ -314,16 +314,15 @@ static int log_append_logfile(const struct lxc_log_appender *appender,
 		return 0;
 
 	n = snprintf(buffer, sizeof(buffer),
-			"%s%s%s %s %-8s %s - %s:%s:%d - ",
-			log_prefix,
-			log_container_name ? " " : "",
-			log_container_name ? log_container_name : "",
-			date_time,
-			lxc_log_priority_to_string(event->priority),
-			event->category,
-			event->locinfo->file, event->locinfo->func,
-			event->locinfo->line);
-
+		         "%s%s%s %s %-8s %s - %s:%s:%d - ",
+		         log_prefix,
+		         log_container_name ? " " : "",
+		         log_container_name ? log_container_name : "",
+		         date_time,
+		         lxc_log_priority_to_string(event->priority),
+		         event->category,
+		         event->locinfo->file, event->locinfo->func,
+		         event->locinfo->line);
 	if (n < 0)
 		return n;
 
@@ -402,6 +401,7 @@ static int build_dir(const char *name)
 				return -1;
 			}
 		}
+
 		*p = '/';
 	}
 
@@ -556,6 +556,7 @@ static int _lxc_log_set_file(const char *name, const char *lxcpath, int create_d
 		ERROR("Could not build log path");
 		return -1;
 	}
+
 	ret = __lxc_log_set_file(logfile, create_dirs);
 	free(logfile);
 	return ret;
@@ -635,6 +636,7 @@ extern int lxc_log_syslog(int facility)
 	appender = lxc_log_category_lxc.appender;
 	while (appender->next != NULL)
 		appender = appender->next;
+
 	appender->next = &log_appender_syslog;
 
 	return 0;

From baa6808034b5fa9128287d8e0c3016974983095e Mon Sep 17 00:00:00 2001
From: 2xsec <dh48.jeong at samsung.com>
Date: Sun, 29 Jul 2018 00:37:53 +0900
Subject: [PATCH 3/4] log: cleanups for functions

Signed-off-by: 2xsec <dh48.jeong at samsung.com>
---
 src/lxc/log.c | 104 +++++++++++++++++++++++++++++-----------------------------
 src/lxc/log.h |   6 ++--
 2 files changed, 55 insertions(+), 55 deletions(-)

diff --git a/src/lxc/log.c b/src/lxc/log.c
index b22912291..f5ec47008 100644
--- a/src/lxc/log.c
+++ b/src/lxc/log.c
@@ -167,7 +167,7 @@ static int log_append_stderr(const struct lxc_log_appender *appender,
 }
 
 /*---------------------------------------------------------------------------*/
-int lxc_unix_epoch_to_utc(char *buf, size_t bufsize, const struct timespec *time)
+static int lxc_unix_epoch_to_utc(char *buf, size_t bufsize, const struct timespec *time)
 {
 	int64_t epoch_to_days, z, era, doe, yoe, year, doy, mp, day, month,
 	    d_in_s, hours, h_in_s, minutes, seconds;
@@ -488,23 +488,6 @@ static char *build_log_path(const char *name, const char *lxcpath)
 	return p;
 }
 
-extern void lxc_log_close(void)
-{
-	closelog();
-
-	free(log_vmname);
-	log_vmname = NULL;
-
-	if (lxc_log_fd == -1)
-		return;
-
-	close(lxc_log_fd);
-	lxc_log_fd = -1;
-
-	free(log_fname);
-	log_fname = NULL;
-}
-
 /*
  * This can be called:
  *   1. when a program calls lxc_log_init with no logfile parameter (in which
@@ -613,40 +596,6 @@ static int lxc_log_enable_logfile(struct lxc_log *log)
 	return ret;
 }
 
-extern int lxc_log_syslog(int facility)
-{
-	struct lxc_log_appender *appender;
-
-	openlog(log_prefix, LOG_PID, facility);
-	if (!lxc_log_category_lxc.appender) {
-		lxc_log_category_lxc.appender = &log_appender_syslog;
-		return 0;
-	}
-
-	appender = lxc_log_category_lxc.appender;
-	/* Check if syslog was already added, to avoid creating a loop */
-	while (appender) {
-		if (appender == &log_appender_syslog) {
-			/* not an error: openlog re-opened the connection */
-			return 0;
-		}
-		appender = appender->next;
-	}
-
-	appender = lxc_log_category_lxc.appender;
-	while (appender->next != NULL)
-		appender = appender->next;
-
-	appender->next = &log_appender_syslog;
-
-	return 0;
-}
-
-extern void lxc_log_enable_syslog(void)
-{
-	syslog_enable = 1;
-}
-
 /*
  * lxc_log_init:
  * Called from lxc front-end programs (like lxc-create, lxc-start) to
@@ -699,6 +648,57 @@ extern int lxc_log_init(struct lxc_log *log)
 	return 0;
 }
 
+extern void lxc_log_close(void)
+{
+	closelog();
+
+	free(log_vmname);
+	log_vmname = NULL;
+
+	if (lxc_log_fd == -1)
+		return;
+
+	close(lxc_log_fd);
+	lxc_log_fd = -1;
+
+	free(log_fname);
+	log_fname = NULL;
+}
+
+extern int lxc_log_syslog(int facility)
+{
+	struct lxc_log_appender *appender;
+
+	openlog(log_prefix, LOG_PID, facility);
+	if (!lxc_log_category_lxc.appender) {
+		lxc_log_category_lxc.appender = &log_appender_syslog;
+		return 0;
+	}
+
+	appender = lxc_log_category_lxc.appender;
+	/* Check if syslog was already added, to avoid creating a loop */
+	while (appender) {
+		if (appender == &log_appender_syslog) {
+			/* not an error: openlog re-opened the connection */
+			return 0;
+		}
+		appender = appender->next;
+	}
+
+	appender = lxc_log_category_lxc.appender;
+	while (appender->next != NULL)
+		appender = appender->next;
+
+	appender->next = &log_appender_syslog;
+
+	return 0;
+}
+
+extern void lxc_log_enable_syslog(void)
+{
+	syslog_enable = 1;
+}
+
 /*
  * This is called when we read a lxc.log.level entry in a lxc.conf file.  This
  * happens after processing command line arguments, which override the .conf
diff --git a/src/lxc/log.h b/src/lxc/log.h
index 448867752..734fbe177 100644
--- a/src/lxc/log.h
+++ b/src/lxc/log.h
@@ -431,14 +431,14 @@ ATTR_UNUSED static inline void LXC_##LEVEL(struct lxc_log_locinfo* locinfo,	\
 
 extern int lxc_log_fd;
 
-extern int lxc_log_set_file(int *fd, const char *fname);
 extern int lxc_log_syslog(int facility);
 extern void lxc_log_enable_syslog(void);
 extern int lxc_log_set_level(int *dest, int level);
-extern void lxc_log_set_prefix(const char *prefix);
-extern const char *lxc_log_get_file(void);
 extern int lxc_log_get_level(void);
 extern bool lxc_log_has_valid_level(void);
+extern int lxc_log_set_file(int *fd, const char *fname);
+extern const char *lxc_log_get_file(void);
+extern void lxc_log_set_prefix(const char *prefix);
 extern const char *lxc_log_get_prefix(void);
 extern void lxc_log_options_no_override();
 #endif

From ec221bb7c405acce64e4399c9a59d89c59d91ac0 Mon Sep 17 00:00:00 2001
From: 2xsec <dh48.jeong at samsung.com>
Date: Sun, 29 Jul 2018 01:04:15 +0900
Subject: [PATCH 4/4] log: fix return value error

Signed-off-by: 2xsec <dh48.jeong at samsung.com>
---
 src/lxc/log.c | 38 ++++++++++++++++----------------------
 src/lxc/log.h |  4 ++--
 2 files changed, 18 insertions(+), 24 deletions(-)

diff --git a/src/lxc/log.c b/src/lxc/log.c
index f5ec47008..92bb39d56 100644
--- a/src/lxc/log.c
+++ b/src/lxc/log.c
@@ -96,7 +96,7 @@ static int lxc_log_priority_to_syslog(int priority)
 }
 
 /*---------------------------------------------------------------------------*/
-static int log_append_syslog(const struct lxc_log_appender *appender,
+static void log_append_syslog(const struct lxc_log_appender *appender,
 			     struct lxc_log_event *event)
 {
 	char *msg;
@@ -110,7 +110,7 @@ static int log_append_syslog(const struct lxc_log_appender *appender,
 #endif
 
 	if (!syslog_enable)
-		return 0;
+		return;
 
 	va_copy(args, *event->vap);
 	len = vsnprintf(NULL, 0, event->fmt, args) + 1;
@@ -118,12 +118,12 @@ static int log_append_syslog(const struct lxc_log_appender *appender,
 
 	msg = malloc(len * sizeof(char));
 	if (msg == NULL)
-		return 0;
+		return;
 
 	rc = vsnprintf(msg, len, event->fmt, *event->vap);
 	if (rc == -1 || rc >= len) {
 		free(msg);
-		return 0;
+		return;
 	}
 
 	syslog(lxc_log_priority_to_syslog(event->priority),
@@ -135,18 +135,16 @@ static int log_append_syslog(const struct lxc_log_appender *appender,
 	       event->locinfo->line,
 	       msg);
 	free(msg);
-
-	return 0;
 }
 
 /*---------------------------------------------------------------------------*/
-static int log_append_stderr(const struct lxc_log_appender *appender,
+static void log_append_stderr(const struct lxc_log_appender *appender,
 			     struct lxc_log_event *event)
 {
 	const char *log_container_name;
 
 	if (event->priority < LXC_LOG_LEVEL_ERROR)
-		return 0;
+		return;
 
 	log_container_name = log_vmname;
 
@@ -162,8 +160,6 @@ static int log_append_stderr(const struct lxc_log_appender *appender,
 	        event->locinfo->func, event->locinfo->line);
 	vfprintf(stderr, event->fmt, *event->vap);
 	fprintf(stderr, "\n");
-
-	return 0;
 }
 
 /*---------------------------------------------------------------------------*/
@@ -285,7 +281,7 @@ static int lxc_unix_epoch_to_utc(char *buf, size_t bufsize, const struct timespe
  * themselves. Our logging is mostly done for debugging purposes so don't try
  * to make it pretty. Pretty might cost you thread-safety.
  */
-static int log_append_logfile(const struct lxc_log_appender *appender,
+static void log_append_logfile(const struct lxc_log_appender *appender,
 			      struct lxc_log_event *event)
 {
 	char buffer[LXC_LOG_BUFFER_SIZE];
@@ -308,10 +304,10 @@ static int log_append_logfile(const struct lxc_log_appender *appender,
 		fd_to_use = lxc_log_fd;
 
 	if (fd_to_use == -1)
-		return 0;
+		return;
 
 	if (lxc_unix_epoch_to_utc(date_time, LXC_LOG_TIME_SIZE, &event->timestamp) < 0)
-		return 0;
+		return;
 
 	n = snprintf(buffer, sizeof(buffer),
 		         "%s%s%s %s %-8s %s - %s:%s:%d - ",
@@ -324,12 +320,12 @@ static int log_append_logfile(const struct lxc_log_appender *appender,
 		         event->locinfo->file, event->locinfo->func,
 		         event->locinfo->line);
 	if (n < 0)
-		return n;
+		return;
 
 	if ((size_t)n < (sizeof(buffer) - 1)) {
 		ret = vsnprintf(buffer + n, sizeof(buffer) - n, event->fmt, *event->vap);
 		if (ret < 0)
-			return 0;
+			return;
 
 		n += ret;
 	}
@@ -339,7 +335,7 @@ static int log_append_logfile(const struct lxc_log_appender *appender,
 
 	buffer[n] = '\n';
 
-	return write(fd_to_use, buffer, n + 1);
+	(void)write(fd_to_use, buffer, n + 1);
 }
 
 static struct lxc_log_appender log_appender_syslog = {
@@ -665,14 +661,14 @@ extern void lxc_log_close(void)
 	log_fname = NULL;
 }
 
-extern int lxc_log_syslog(int facility)
+extern void lxc_log_syslog(int facility)
 {
 	struct lxc_log_appender *appender;
 
 	openlog(log_prefix, LOG_PID, facility);
 	if (!lxc_log_category_lxc.appender) {
 		lxc_log_category_lxc.appender = &log_appender_syslog;
-		return 0;
+		return;
 	}
 
 	appender = lxc_log_category_lxc.appender;
@@ -680,7 +676,7 @@ extern int lxc_log_syslog(int facility)
 	while (appender) {
 		if (appender == &log_appender_syslog) {
 			/* not an error: openlog re-opened the connection */
-			return 0;
+			return;
 		}
 		appender = appender->next;
 	}
@@ -690,8 +686,6 @@ extern int lxc_log_syslog(int facility)
 		appender = appender->next;
 
 	appender->next = &log_appender_syslog;
-
-	return 0;
 }
 
 extern void lxc_log_enable_syslog(void)
@@ -749,7 +743,7 @@ extern int lxc_log_set_file(int *fd, const char *fname)
 
 	*fd = log_open(fname);
 	if (*fd == -1)
-		return -errno;
+		return -1;
 
 	return 0;
 }
diff --git a/src/lxc/log.h b/src/lxc/log.h
index 734fbe177..f19f4f8b1 100644
--- a/src/lxc/log.h
+++ b/src/lxc/log.h
@@ -93,7 +93,7 @@ struct lxc_log_event {
 /* log appender object */
 struct lxc_log_appender {
 	const char *name;
-	int (*append)(const struct lxc_log_appender *, struct lxc_log_event *);
+	void (*append)(const struct lxc_log_appender *, struct lxc_log_event *);
 
 	/*
 	 * appenders can be stacked
@@ -431,7 +431,7 @@ ATTR_UNUSED static inline void LXC_##LEVEL(struct lxc_log_locinfo* locinfo,	\
 
 extern int lxc_log_fd;
 
-extern int lxc_log_syslog(int facility);
+extern void lxc_log_syslog(int facility);
 extern void lxc_log_enable_syslog(void);
 extern int lxc_log_set_level(int *dest, int level);
 extern int lxc_log_get_level(void);


More information about the lxc-devel mailing list