[libvirt] [PATCH 2/2] Detect errors from the 'sendkey' command
Daniel P. Berrange
berrange at redhat.com
Thu Aug 25 16:49:25 UTC 2011
From: "Daniel P. Berrange" <berrange at redhat.com>
On success, the 'sendkey' command does not return any data, so
any data in the reply should be considered to be an error
message
* src/qemu/qemu_monitor_text.c: Treat non-"" reply data as an
error message for 'sendkey' command
---
src/qemu/qemu_monitor_text.c | 15 ++++++++++++---
1 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c
index 54541ce..4bd761d 100644
--- a/src/qemu/qemu_monitor_text.c
+++ b/src/qemu/qemu_monitor_text.c
@@ -2848,6 +2848,7 @@ int qemuMonitorTextSendKey(qemuMonitorPtr mon,
int i;
virBuffer buf = VIR_BUFFER_INITIALIZER;
char *cmd, *reply = NULL;
+ int ret = -1;
if (nkeycodes > VIR_DOMAIN_SEND_KEY_MAX_KEYS || nkeycodes == 0)
return -1;
@@ -2880,13 +2881,21 @@ int qemuMonitorTextSendKey(qemuMonitorPtr mon,
qemuReportError(VIR_ERR_OPERATION_FAILED,
_("failed to send key using command '%s'"),
cmd);
- VIR_FREE(cmd);
- return -1;
+ goto cleanup;
+ }
+
+ if (STRNEQ(reply, "")) {
+ qemuReportError(VIR_ERR_OPERATION_FAILED,
+ _("failed to send key '%s'"), reply);
+ goto cleanup;
}
+ ret = 0;
+
+cleanup:
VIR_FREE(cmd);
VIR_FREE(reply);
- return 0;
+ return ret;
}
/* Returns -1 on error, -2 if not supported */
--
1.7.6
More information about the libvir-list
mailing list