[lxc-devel] [PATCH] log.c: always use dir when lxcpath is not default

Dwight Engen dwight.engen at oracle.com
Tue Apr 30 20:33:18 UTC 2013


Signed-off-by: Dwight Engen <dwight.engen at oracle.com>
---
 src/lxc/log.c | 36 +++++++++++++++++++++++-------------
 1 file changed, 23 insertions(+), 13 deletions(-)

diff --git a/src/lxc/log.c b/src/lxc/log.c
index 61280bc..8d87a51 100644
--- a/src/lxc/log.c
+++ b/src/lxc/log.c
@@ -187,31 +187,41 @@ static int log_open(const char *name)
 static char *build_log_path(const char *name, const char *lxcpath)
 {
 	char *p;
-	int len, ret;
+	int len, ret, use_dir;
+
+#if USE_CONFIGPATH_LOGS
+	use_dir = 1;
+#else
+	use_dir = 0;
+#endif
 
 	/*
-	 * If USE_CONFIGPATH_LOGS is true the resulting path will be:
+	 * If USE_CONFIGPATH_LOGS is true or lxcpath is given, the resulting
+	 * path will be:
 	 * '$logpath' + '/' + '$name' + '/' + '$name' + '.log' + '\0'
 	 *
 	 * If USE_CONFIGPATH_LOGS is false the resulting path will be:
 	 * '$logpath' + '/' + '$name' + '.log' + '\0'
 	 */
 	len = strlen(name) + 6; /* 6 == '/' + '.log' + '\0' */
-	if (!lxcpath)
+	if (lxcpath)
+		use_dir = 1;
+	else
 		lxcpath = LOGPATH;
-#if USE_CONFIGPATH_LOGS
-	len += strlen(lxcpath) + 1 + strlen(name) + 1;  /* add "/$container_name/" */
-#else
-	len += strlen(lxcpath) + 1;
-#endif
+
+	if (use_dir)
+		len += strlen(lxcpath) + 1 + strlen(name) + 1;  /* add "/$container_name/" */
+	else
+		len += strlen(lxcpath) + 1;
 	p = malloc(len);
 	if (!p)
 		return p;
-#if USE_CONFIGPATH_LOGS
-	ret = snprintf(p, len, "%s/%s/%s.log", lxcpath, name, name);
-#else
-	ret = snprintf(p, len, "%s/%s.log", lxcpath, name);
-#endif
+
+	if (use_dir)
+		ret = snprintf(p, len, "%s/%s/%s.log", lxcpath, name, name);
+	else
+		ret = snprintf(p, len, "%s/%s.log", lxcpath, name);
+
 	if (ret < 0 || ret >= len) {
 		free(p);
 		return NULL;
-- 
1.8.1.4





More information about the lxc-devel mailing list