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 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list