提交 c5d0a2a3 编写于 作者: E Erik Skultety

virconf: Fix config file path construction

Since commit c4bdff19, the path to the configuration file has been constructed
in the following manner:
 - if no config filename was passed to virConfLoadConfigPath, libvirt.conf was
 used as default
 - otherwise the filename was concatenated with
 "<config_dir>/libvirt/libvirt%s%s.conf" which in admin case resulted in
 "libvirt-libvirt-admin.conf.conf". Obviously, this non-existent config led to
 ignoring  all user settings in libvirt-admin.conf. This patch requires the
 config filename to be always provided as an argument with the concatenation
 being simplified.

 Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1357364Signed-off-by: NErik Skultety <eskultet@redhat.com>
上级 3b9c60af
......@@ -969,7 +969,7 @@ virConnectOpenInternal(const char *name,
if (ret == NULL)
return NULL;
if (virConfLoadConfig(&conf, NULL) < 0)
if (virConfLoadConfig(&conf, "libvirt.conf") < 0)
goto failed;
if (name && name[0] == '\0')
......
......@@ -1566,20 +1566,16 @@ virConfLoadConfigPath(const char *name)
{
char *path;
if (geteuid() == 0) {
if (virAsprintf(&path, "%s/libvirt/libvirt%s%s.conf",
SYSCONFDIR,
name ? "-" : "",
name ? name : "") < 0)
if (virAsprintf(&path, "%s/libvirt/%s",
SYSCONFDIR, name) < 0)
return NULL;
} else {
char *userdir = virGetUserConfigDirectory();
if (!userdir)
return NULL;
if (virAsprintf(&path, "%s/libvirt%s%s.conf",
userdir,
name ? "-" : "",
name ? name : "") < 0) {
if (virAsprintf(&path, "%s/%s",
userdir, name) < 0) {
VIR_FREE(userdir);
return NULL;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册