提交 48976981 编写于 作者: M Martin Kletzander

build: Don't use code with dbus_message_unref when built without dbus

In order to do that, virNodeSuspendSupportsTargetPMUtils() and
virSystemdPMSupportTarget() are created even when pm-utils and dbus
are compiled out, respectively, but in that case returning -2 meaning
"unavailable" (this return code was already used for unavailability
before).  Error is reported in virNodeSuspendSupportsTarget() only if
both functions returned -2, otherwise the error (or success) is properly
propagated up the stack.
Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
上级 110c0db8
/*
* virnodesuspend.c: Support for suspending a node (host machine)
*
* Copyright (C) 2014 Red Hat, Inc.
* Copyright (C) 2011 Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
*
* This library is free software; you can redistribute it and/or
......@@ -267,7 +268,14 @@ virNodeSuspendSupportsTargetPMUtils(unsigned int target, bool *supported)
virCommandFree(cmd);
return ret;
}
#endif
#else /* ! WITH_PM_UTILS */
static int
virNodeSuspendSupportsTargetPMUtils(unsigned int target ATTRIBUTE_UNUSED,
bool *supported ATTRIBUTE_UNUSED)
{
return -2;
}
#endif /* ! WITH_PM_UTILS */
static int
virNodeSuspendSupportsTargetSystemd(unsigned int target, bool *supported)
......@@ -313,10 +321,17 @@ virNodeSuspendSupportsTarget(unsigned int target, bool *supported)
int ret;
ret = virNodeSuspendSupportsTargetSystemd(target, supported);
#ifdef WITH_PM_UTILS
if (ret < 0)
/* If just unavailable, try other options */
if (ret == -2)
ret = virNodeSuspendSupportsTargetPMUtils(target, supported);
#endif
/* If still unavailable, then report error */
if (ret == -2) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Cannot probe for supported suspend types"));
ret = -1;
}
return ret;
}
......
/*
* virsystemd.c: helpers for using systemd APIs
*
* Copyright (C) 2013 Red Hat, Inc.
* Copyright (C) 2013, 2014 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
......@@ -326,6 +326,7 @@ virSystemdNotifyStartup(void)
#endif
}
#ifdef WITH_SYSTEMD_DAEMON
static int
virSystemdPMSupportTarget(const char *methodName, bool *result)
{
......@@ -369,6 +370,14 @@ virSystemdPMSupportTarget(const char *methodName, bool *result)
return ret;
}
#else /* ! WITH_SYSTEMD_DAEMON */
static int
virSystemdPMSupportTarget(const char *methodName ATTRIBUTE_UNUSED,
bool *result ATTRIBUTE_UNUSED)
{
return -2;
}
#endif /* ! WITH_SYSTEMD_DAEMON */
int virSystemdCanSuspend(bool *result)
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册