6ae9ed
From ed2b72afab3b9359cd3b6fab3ee38e56624e87f8 Mon Sep 17 00:00:00 2001
6ae9ed
Message-Id: <ed2b72afab3b9359cd3b6fab3ee38e56624e87f8@dist-git>
6ae9ed
From: Erik Skultety <eskultet@redhat.com>
6ae9ed
Date: Mon, 1 Aug 2016 15:10:11 +0200
6ae9ed
Subject: [PATCH] virconf: Fix config file path construction
6ae9ed
6ae9ed
Since commit c4bdff19, the path to the configuration file has been constructed
6ae9ed
in the following manner:
6ae9ed
 - if no config filename was passed to virConfLoadConfigPath, libvirt.conf was
6ae9ed
 used as default
6ae9ed
 - otherwise the filename was concatenated with
6ae9ed
 "<config_dir>/libvirt/libvirt%s%s.conf" which in admin case resulted in
6ae9ed
 "libvirt-libvirt-admin.conf.conf". Obviously, this non-existent config led to
6ae9ed
 ignoring  all user settings in libvirt-admin.conf. This patch requires the
6ae9ed
 config filename to be always provided as an argument with the concatenation
6ae9ed
 being simplified.
6ae9ed
6ae9ed
 Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1357364
6ae9ed
6ae9ed
Signed-off-by: Erik Skultety <eskultet@redhat.com>
6ae9ed
(cherry picked from commit c5d0a2a38525929515337ea21cb5c19903ccb05c)
6ae9ed
---
6ae9ed
 src/libvirt.c      |  2 +-
6ae9ed
 src/util/virconf.c | 12 ++++--------
6ae9ed
 2 files changed, 5 insertions(+), 9 deletions(-)
6ae9ed
6ae9ed
diff --git a/src/libvirt.c b/src/libvirt.c
6ae9ed
index a5e0e41..f26eec4 100644
6ae9ed
--- a/src/libvirt.c
6ae9ed
+++ b/src/libvirt.c
6ae9ed
@@ -970,7 +970,7 @@ virConnectOpenInternal(const char *name,
6ae9ed
     if (ret == NULL)
6ae9ed
         return NULL;
6ae9ed
 
6ae9ed
-    if (virConfLoadConfig(&conf, NULL) < 0)
6ae9ed
+    if (virConfLoadConfig(&conf, "libvirt.conf") < 0)
6ae9ed
         goto failed;
6ae9ed
 
6ae9ed
     if (name && name[0] == '\0')
6ae9ed
diff --git a/src/util/virconf.c b/src/util/virconf.c
6ae9ed
index 7c98588..8176296 100644
6ae9ed
--- a/src/util/virconf.c
6ae9ed
+++ b/src/util/virconf.c
6ae9ed
@@ -1069,20 +1069,16 @@ virConfLoadConfigPath(const char *name)
6ae9ed
 {
6ae9ed
     char *path;
6ae9ed
     if (geteuid() == 0) {
6ae9ed
-        if (virAsprintf(&path, "%s/libvirt/libvirt%s%s.conf",
6ae9ed
-                        SYSCONFDIR,
6ae9ed
-                        name ? "-" : "",
6ae9ed
-                        name ? name : "") < 0)
6ae9ed
+        if (virAsprintf(&path, "%s/libvirt/%s",
6ae9ed
+                        SYSCONFDIR, name) < 0)
6ae9ed
             return NULL;
6ae9ed
     } else {
6ae9ed
         char *userdir = virGetUserConfigDirectory();
6ae9ed
         if (!userdir)
6ae9ed
             return NULL;
6ae9ed
 
6ae9ed
-        if (virAsprintf(&path, "%s/libvirt%s%s.conf",
6ae9ed
-                        userdir,
6ae9ed
-                        name ? "-" : "",
6ae9ed
-                        name ? name : "") < 0) {
6ae9ed
+        if (virAsprintf(&path, "%s/%s",
6ae9ed
+                        userdir, name) < 0) {
6ae9ed
             VIR_FREE(userdir);
6ae9ed
             return NULL;
6ae9ed
         }
6ae9ed
-- 
6ae9ed
2.9.2
6ae9ed