[libvirt] [PATCH] qemu: simplify use of HAVE_YAJL

Eric Blake eblake at redhat.com
Thu Oct 20 20:39:08 UTC 2011


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




More information about the libvir-list mailing list