On 03/29/2011 10:10 AM, Jiri Denemark wrote:
In qemu-0.12.* "device '...' is locked" message was
changed to "Device
..." so libvirt was no longer detecting this as an error.
---
bootstrap.conf | 1 +
src/qemu/qemu_monitor_text.c | 2 +-
2 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/bootstrap.conf b/bootstrap.conf
index 6070204..6e10828 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -63,6 +63,7 @@ sigpipe
snprintf
socket
stpcpy
+strcasestr
strchrnul
strndup
strerror
diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c
index 75b2995..7ebe62e 100644
--- a/src/qemu/qemu_monitor_text.c
+++ b/src/qemu/qemu_monitor_text.c
@@ -934,7 +934,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, "device ")) {
+ if (strcasestr(reply, "device ")) {
qemuReportError(VIR_ERR_OPERATION_FAILED,
_("could not eject media on %s: %s"), devname,
reply);
goto cleanup;
Even though strcasestr is a non-standard function, you're using gnulib
for it, so that shouldn't be a problem. And your change will work for
both old and new qemus.
ACK.