提交 2398dd3d 编写于 作者: P Peter Krempa

virdbus: Add virDBusHasSystemBus()

Some systems may not use DBus in their system. Add a method to check if
the system bus is available that doesn't print error messages so that
code can later check for this condition and use an alternative approach.
上级 39d963d1
......@@ -1294,6 +1294,7 @@ virConfWriteMem;
virDBusCallMethod;
virDBusGetSessionBus;
virDBusGetSystemBus;
virDBusHasSystemBus;
virDBusMessageDecode;
virDBusMessageEncode;
virDBusMessageRead;
......
......@@ -73,7 +73,8 @@ static void virDBusSystemBusInit(void)
systembus = virDBusBusInit(DBUS_BUS_SYSTEM, &systemdbuserr);
}
DBusConnection *virDBusGetSystemBus(void)
static DBusConnection *
virDBusGetSystemBusInternal(void)
{
if (virOnce(&systemonce, virDBusSystemBusInit) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
......@@ -81,14 +82,34 @@ DBusConnection *virDBusGetSystemBus(void)
return NULL;
}
if (!systembus) {
return systembus;
}
DBusConnection *
virDBusGetSystemBus(void)
{
DBusConnection *bus;
if (!(bus = virDBusGetSystemBusInternal())) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Unable to get DBus system bus connection: %s"),
systemdbuserr.message ? systemdbuserr.message : "watch setup failed");
return NULL;
}
return systembus;
return bus;
}
bool
virDBusHasSystemBus(void)
{
if (virDBusGetSystemBusInternal())
return true;
VIR_DEBUG("System DBus not available: %s", NULLSTR(systemdbuserr.message));
return false;
}
......@@ -1195,6 +1216,15 @@ DBusConnection *virDBusGetSystemBus(void)
return NULL;
}
bool
virDBusHasSystemBus(void)
{
VIR_DEBUG("DBus support not compiled into this binary");
return false;
}
DBusConnection *virDBusGetSessionBus(void)
{
virReportError(VIR_ERR_INTERNAL_ERROR,
......
......@@ -32,6 +32,7 @@
# include "internal.h"
DBusConnection *virDBusGetSystemBus(void);
bool virDBusHasSystemBus(void);
DBusConnection *virDBusGetSessionBus(void);
int virDBusCallMethod(DBusConnection *conn,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册