[libvirt] [PATCH 2/2] Fix QEMU text monitor command error checking

Daniel P. Berrange berrange at redhat.com
Thu Apr 22 15:49:01 UTC 2010


The text monitor code was checking for a '\n' prefix on several
places. Previously this would work, but since the monitor code
re-write the '\n' is already stripped off, so mustn't be checked
for.

* src/qemu/qemu_monitor_text.c: Fix monitor error checking
---
 src/qemu/qemu_monitor_text.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c
index db3806d..4c8c108 100644
--- a/src/qemu/qemu_monitor_text.c
+++ b/src/qemu/qemu_monitor_text.c
@@ -787,7 +787,7 @@ int qemuMonitorTextSetBalloon(qemuMonitorPtr mon,
 
     /* If the command failed qemu prints: 'unknown command'
      * No message is printed on success it seems */
-    if (strstr(reply, "\nunknown command:")) {
+    if (strstr(reply, "unknown command:")) {
         /* Don't set error - it is expected memory balloon fails on many qemu */
         ret = 0;
     } else {
@@ -816,7 +816,7 @@ int qemuMonitorTextSetCPU(qemuMonitorPtr mon, int cpu, int online)
 
     if (qemuMonitorCommand(mon, cmd, &reply) < 0) {
         qemuReportError(VIR_ERR_OPERATION_FAILED,
-                        "%s", _("could nt change CPU online status"));
+                        "%s", _("could not change CPU online status"));
         VIR_FREE(cmd);
         return -1;
     }
@@ -824,7 +824,7 @@ int qemuMonitorTextSetCPU(qemuMonitorPtr mon, int cpu, int online)
 
     /* If the command failed qemu prints: 'unknown command'
      * No message is printed on success it seems */
-    if (strstr(reply, "\nunknown command:")) {
+    if (strstr(reply, "unknown command:")) {
         /* Don't set error - it is expected CPU onlining fails on many qemu - caller will handle */
         ret = 0;
     } else {
@@ -857,7 +857,7 @@ int qemuMonitorTextEjectMedia(qemuMonitorPtr mon,
     /* If the command failed qemu prints:
      * device not found, device is locked ...
      * No message is printed on success it seems */
-    if (strstr(reply, "\ndevice ")) {
+    if (strstr(reply, "device ")) {
         qemuReportError(VIR_ERR_OPERATION_FAILED,
                         _("could not eject media on %s: %s"), devname, reply);
         goto cleanup;
@@ -901,14 +901,14 @@ int qemuMonitorTextChangeMedia(qemuMonitorPtr mon,
     /* If the command failed qemu prints:
      * device not found, device is locked ...
      * No message is printed on success it seems */
-    if (strstr(reply, "\ndevice ")) {
+    if (strstr(reply, "device ")) {
         qemuReportError(VIR_ERR_OPERATION_FAILED,
                         _("could not eject media on %s: %s"), devname, reply);
         goto cleanup;
     }
 
     /* Could not open message indicates bad filename */
-    if (strstr(reply, "\nCould not open ")) {
+    if (strstr(reply, "Could not open ")) {
         qemuReportError(VIR_ERR_OPERATION_FAILED,
                         _("could not change media on %s: %s"), devname, reply);
         goto cleanup;
@@ -2291,7 +2291,7 @@ int qemuMonitorTextSetDrivePassphrase(qemuMonitorPtr mon,
         goto cleanup;
     }
 
-    if (strstr(reply, "\nunknown command:")) {
+    if (strstr(reply, "unknown command:")) {
         qemuReportError(VIR_ERR_OPERATION_FAILED, "%s",
                         _("setting disk password is not supported"));
         goto cleanup;
-- 
1.6.6.1




More information about the libvir-list mailing list