]> xenbits.xensource.com Git - libvirt.git/commitdiff
Add a method for closing the dbus system bus connection
authorDaniel P. Berrange <berrange@redhat.com>
Fri, 11 Oct 2013 14:57:05 +0000 (15:57 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Mon, 14 Oct 2013 09:31:01 +0000 (10:31 +0100)
If the dbus system bus connection is marked as private, then
allow it to be closed.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
src/libvirt_private.syms
src/util/virdbus.c
src/util/virdbus.h

index b2b1fa811bc40693f2cd8ec7f395c642e0114e96..7ee538c05caafdf37df122b036b2514e38a63a4d 100644 (file)
@@ -1102,6 +1102,7 @@ virConfWriteMem;
 
 # util/virdbus.h
 virDBusCallMethod;
+virDBusCloseSystemBus;
 virDBusGetSessionBus;
 virDBusGetSystemBus;
 virDBusHasSystemBus;
index 3c6007eb5aaac47fe36d39ef1a93756e8f84e121..dc4ace0ea417dbb7d15e5ac2897dc69d1a957069 100644 (file)
@@ -122,6 +122,14 @@ virDBusHasSystemBus(void)
 }
 
 
+void virDBusCloseSystemBus(void)
+{
+    if (systembus && !sharedBus) {
+        dbus_connection_close(systembus);
+        systembus = NULL;
+    }
+}
+
 static void virDBusSessionBusInit(void)
 {
     sessionbus = virDBusBusInit(DBUS_BUS_SESSION, &sessiondbuserr);
@@ -1310,6 +1318,10 @@ virDBusHasSystemBus(void)
     return false;
 }
 
+void virDBusCloseSystemBus(void)
+{
+    /* nothing */
+}
 
 DBusConnection *virDBusGetSessionBus(void)
 {
index 125a405f06d7bbaba5bdf041a867ec4780a30909..979c566fa01811afee42752a875b2d0efb6f3e58 100644 (file)
@@ -35,6 +35,7 @@ void virDBusSetSharedBus(bool shared);
 
 DBusConnection *virDBusGetSystemBus(void);
 bool virDBusHasSystemBus(void);
+void virDBusCloseSystemBus(void);
 DBusConnection *virDBusGetSessionBus(void);
 
 int virDBusCallMethod(DBusConnection *conn,