From: "Daniel P. Berrange" <berrange(a)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