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. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list