From a07c81c4d0befc1e92b9cf3ce25260488a6bdcdb Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Fri, 8 Jul 2011 11:44:25 -0600 Subject: [PATCH] libvirtd: diagnose explicitly requested but missing conf file Fixes test regression introduced in commit 8e2e4780. * daemon/libvirtd.c (daemonConfigLoad): Add argument. (main): Update caller. --- daemon/libvirtd.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c index fe0fa27f2e..a4198d9fe4 100644 --- a/daemon/libvirtd.c +++ b/daemon/libvirtd.c @@ -1024,11 +1024,13 @@ daemonConfigFree(struct daemonConfig *data) */ static int daemonConfigLoad(struct daemonConfig *data, - const char *filename) + const char *filename, + bool allow_missing) { virConfPtr conf; - if (access(filename, R_OK) == -1 && + if (allow_missing && + access(filename, R_OK) == -1 && errno == ENOENT) return 0; @@ -1282,6 +1284,7 @@ int main(int argc, char **argv) { int ipsock = 0; struct daemonConfig *config; bool privileged = geteuid() == 0 ? true : false; + bool implicit_conf = false; struct option opts[] = { { "verbose", no_argument, &verbose, 1}, @@ -1367,14 +1370,16 @@ int main(int argc, char **argv) { exit(EXIT_FAILURE); /* No explicit config, so try and find a default one */ - if (remote_config_file == NULL && - daemonConfigFilePath(privileged, - &remote_config_file) < 0) - exit(EXIT_FAILURE); + if (remote_config_file == NULL) { + implicit_conf = true; + if (daemonConfigFilePath(privileged, + &remote_config_file) < 0) + exit(EXIT_FAILURE); + } /* Read the config file if it exists*/ if (remote_config_file && - daemonConfigLoad(config, remote_config_file) < 0) + daemonConfigLoad(config, remote_config_file, implicit_conf) < 0) exit(EXIT_FAILURE); if (config->host_uuid &&