From 89c5ce4dcdf4723da8c1be623d6ad266e7da8371 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Mon, 6 Jul 2009 18:43:21 +0100 Subject: [PATCH] Allow autostart of libvirtd to be disabled with LIBVIRT_AUTOSTART=0 * src/remote_internal.c: Disable libvirtd autostart if the LIBVIRT_AUTOSTART=0 env variable is set * src/libvirt.c: Document environment variables can impact the virConnectOpen API --- src/libvirt.c | 17 +++++++++++++++++ src/remote_internal.c | 9 +++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/libvirt.c b/src/libvirt.c index 72221e9048..cb39636e8f 100644 --- a/src/libvirt.c +++ b/src/libvirt.c @@ -1118,6 +1118,17 @@ failed: * * Returns a pointer to the hypervisor connection or NULL in case of error * + * If @name is NULL then probing will be done to determine a suitable + * default driver to activate. This involves trying each hypervisor + * in turn until one successfully opens. If the LIBVIRT_DEFAULT_URI + * environment variable is set, then it will be used in preference + * to probing for a driver. + * + * If connecting to an unprivileged hypervisor driver which requires + * the libvirtd daemon to be active, it will automatically be launched + * if not already running. This can be prevented by setting the + * environment variable LIBVIRT_AUTOSTART=0 + * * URIs are documented at http://libvirt.org/uri.html */ virConnectPtr @@ -1139,6 +1150,9 @@ virConnectOpen (const char *name) * library functionalities. The set of APIs usable are then restricted * on the available methods to control the domains. * + * See virConnectOpen for notes about environment variables which can + * have an effect on opening drivers + * * Returns a pointer to the hypervisor connection or NULL in case of error * * URIs are documented at http://libvirt.org/uri.html @@ -1164,6 +1178,9 @@ virConnectOpenReadOnly(const char *name) * Hypervisor. If necessary, authentication will be performed fetching * credentials via the callback * + * See virConnectOpen for notes about environment variables which can + * have an effect on opening drivers + * * Returns a pointer to the hypervisor connection or NULL in case of error * * URIs are documented at http://libvirt.org/uri.html diff --git a/src/remote_internal.c b/src/remote_internal.c index 72a14c0ae1..423958942d 100644 --- a/src/remote_internal.c +++ b/src/remote_internal.c @@ -972,6 +972,7 @@ remoteOpen (virConnectPtr conn, { struct private_data *priv; int ret, rflags = 0; + const char *autostart = getenv("LIBVIRT_AUTOSTART"); if (inside_daemon) return VIR_DRV_OPEN_DECLINED; @@ -999,7 +1000,9 @@ remoteOpen (virConnectPtr conn, getuid() > 0) { DEBUG0("Auto-spawn user daemon instance"); rflags |= VIR_DRV_OPEN_REMOTE_USER; - rflags |= VIR_DRV_OPEN_REMOTE_AUTOSTART; + if (!autostart || + STRNEQ(autostart, "0")) + rflags |= VIR_DRV_OPEN_REMOTE_AUTOSTART; } /* @@ -1014,7 +1017,9 @@ remoteOpen (virConnectPtr conn, if (getuid() > 0) { DEBUG0("Auto-spawn user daemon instance"); rflags |= VIR_DRV_OPEN_REMOTE_USER; - rflags |= VIR_DRV_OPEN_REMOTE_AUTOSTART; + if (!autostart || + STRNEQ(autostart, "0")) + rflags |= VIR_DRV_OPEN_REMOTE_AUTOSTART; } #endif } -- GitLab