Rather than making all clients of monitor commands that are JSON-only
check whether yajl support was compiled in, it is simpler to just
avoid setting the capability bit up front if we can't use the capability.
* src/qemu/qemu_capabilities.c (qemuCapsComputeCmdFlags): Only set
capability bit if we also have yajl library to use it.
* src/qemu/qemu_driver.c (qemuDomainReboot): Drop #ifdefs.
* src/qemu/qemu_process.c (qemuProcessStart): Likewise.
---
As mentioned here:
https://www.redhat.com/archives/libvir-list/2011-October/msg01004.html
src/qemu/qemu_capabilities.c | 2 ++
src/qemu/qemu_driver.c | 6 ------
src/qemu/qemu_process.c | 2 --
3 files changed, 2 insertions(+), 8 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 5f0356c..b4ab55b 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1060,8 +1060,10 @@ qemuCapsComputeCmdFlags(const char *help,
* two features. The benefits of JSON mode now outweigh
* the downside.
*/
+#if HAVE_YAJL
if (version >= 13000)
qemuCapsSet(flags, QEMU_CAPS_MONITOR_JSON);
+#endif
if (version >= 13000)
qemuCapsSet(flags, QEMU_CAPS_PCI_MULTIFUNCTION);
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 0a0a34a..55a9652 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -1538,9 +1538,7 @@ static int qemuDomainReboot(virDomainPtr dom, unsigned int flags) {
struct qemud_driver *driver = dom->conn->privateData;
virDomainObjPtr vm;
int ret = -1;
-#if HAVE_YAJL
qemuDomainObjPrivatePtr priv;
-#endif
virCheckFlags(0, -1);
@@ -1556,7 +1554,6 @@ static int qemuDomainReboot(virDomainPtr dom, unsigned int flags) {
goto cleanup;
}
-#if HAVE_YAJL
priv = vm->privateData;
if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_MONITOR_JSON)) {
@@ -1586,12 +1583,9 @@ static int qemuDomainReboot(virDomainPtr dom, unsigned int flags)
{
if (qemuDomainObjEndJob(driver, vm) == 0)
vm = NULL;
} else {
-#endif
qemuReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("Reboot is not supported without the JSON
monitor"));
-#if HAVE_YAJL
}
-#endif
cleanup:
if (vm)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index a7fe86c..cc2395f 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -2962,11 +2962,9 @@ int qemuProcessStart(virConnectPtr conn,
if (qemuProcessPrepareMonitorChr(driver, priv->monConfig, vm->def->name)
< 0)
goto cleanup;
-#if HAVE_YAJL
if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_MONITOR_JSON))
priv->monJSON = 1;
else
-#endif
priv->monJSON = 0;
priv->monError = false;
--
1.7.4.4