From: Daniel P. Berrangé Date: Wed, 31 Jan 2018 18:21:52 +0000 (+0000) Subject: driver: add some helpers for opening secondary driver connections X-Git-Tag: v4.1.0-rc1~225 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2870419eb922f0ff0109be19786b748665ec00c5;p=thirdparty%2Flibvirt.git driver: add some helpers for opening secondary driver connections Various parts of libvirt will want to open connections to secondary drivers. The right URI to use will depend on the context, so rather than duplicating that logic in various places, use some helper APIs. This will also make it easier for us to later pre-open/cache connections to avoid repeated opening & closing the same connectiong during autostart. Signed-off-by: Daniel P. Berrangé --- diff --git a/src/driver.c b/src/driver.c index 04dd0a4431..a6a7ff925a 100644 --- a/src/driver.c +++ b/src/driver.c @@ -167,3 +167,33 @@ virDriverLoadModule(const char *name, /* XXX unload modules, but we can't until we can unregister libvirt drivers */ + +virConnectPtr virGetConnectInterface(void) +{ + return virConnectOpen(geteuid() == 0 ? "interface:///system" : "interface:///session"); +} + +virConnectPtr virGetConnectNetwork(void) +{ + return virConnectOpen(geteuid() == 0 ? "network:///system" : "network:///session"); +} + +virConnectPtr virGetConnectNWFilter(void) +{ + return virConnectOpen(geteuid() == 0 ? "nwfilter:///system" : "nwfilter:///session"); +} + +virConnectPtr virGetConnectNodeDev(void) +{ + return virConnectOpen(geteuid() == 0 ? "nodedev:///system" : "nodedev:///session"); +} + +virConnectPtr virGetConnectSecret(void) +{ + return virConnectOpen(geteuid() == 0 ? "secret:///system" : "secret:///session"); +} + +virConnectPtr virGetConnectStorage(void) +{ + return virConnectOpen(geteuid() == 0 ? "storage:///system" : "storage:///session"); +} diff --git a/src/driver.h b/src/driver.h index 936c981603..fe0cec0923 100644 --- a/src/driver.h +++ b/src/driver.h @@ -105,4 +105,11 @@ int virDriverLoadModuleFull(const char *name, const char *regfunc, void **handle); +virConnectPtr virGetConnectInterface(void); +virConnectPtr virGetConnectNetwork(void); +virConnectPtr virGetConnectNWFilter(void); +virConnectPtr virGetConnectNodeDev(void); +virConnectPtr virGetConnectSecret(void); +virConnectPtr virGetConnectStorage(void); + #endif /* __VIR_DRIVER_H__ */ diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 43deca9a52..0a42bfd401 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1183,6 +1183,15 @@ virStorageVolClass; virStreamClass; +# driver.h +virGetConnectInterface; +virGetConnectNetwork; +virGetConnectNodeDev; +virGetConnectNWFilter; +virGetConnectSecret; +virGetConnectStorage; + + # libvirt_internal.h virConnectSupportsFeature; virDomainMigrateBegin3;