mirror of https://gitee.com/openkylin/libvirt.git
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: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
parent
110c0db88c
commit
4897698110
|
@ -1,6 +1,7 @@
|
|||
/*
|
||||
* 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;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* 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)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue