
At 10/21/2011 04:39 AM, Eric Blake Write:
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;
ACK