diff --git a/src/libvirt.c b/src/libvirt.c index 72221e9048536f56b9b7b7d91e8461edc5ab26b0..cb39636e8f978715e6d03b0954b901626178c0d7 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 72a14c0ae1821f63b4470d3fca88d4ca1a0e6456..423958942db5f64ecae5b8e1a5fd4997ae234492 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 }