]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
log.c: always use dir when lxcpath is not default
authorDwight Engen <dwight.engen@oracle.com>
Tue, 30 Apr 2013 20:33:18 +0000 (16:33 -0400)
committerSerge Hallyn <serge.hallyn@ubuntu.com>
Tue, 30 Apr 2013 21:07:52 +0000 (16:07 -0500)
Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
src/lxc/log.c

index 61280bc0b9233a9f545ada1578f5499b2fb0379d..8d87a518015b4e3938abaf1202dae6791f51e9f5 100644 (file)
@@ -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;