Daniel P. Berrange wrote: > On Tue, Mar 31, 2009 at 10:07:31AM +0200, Gerrit.Slomma@xxxxxxxxxxx wrote: >> Hello >> >> I am just curious if the checking of the connection string in qemu_driver.c >> from libvirt-0.6.1 in qemudDomainMigratePrepare2 is faulty. >> The source is: >> >> [...] >> } else { >> /* Check the URI starts with "tcp:". We will escape the >> * URI when passing it to the qemu monitor, so bad >> * characters in hostname part don't matter. >> */ >> if (!STREQLEN (uri_in, "tcp:", 6)) { >> qemudReportError (dconn, NULL, NULL, VIR_ERR_INVALID_ARG, >> "%s", _("only tcp URIs are supported for KVM >> migrations")); >> goto cleanup; >> } >> [...] >> >> The second compare-string "tcp:" is only 4 characters long, therefore a >> check via strncmp must fail i presumed, i isolated this comparison: > > Can you try with this patch applied > > diff -r b5ad7b1c453b src/qemu_driver.c > --- a/src/qemu_driver.c Tue Mar 31 14:55:23 2009 +0100 > +++ b/src/qemu_driver.c Tue Mar 31 15:02:30 2009 +0100 > @@ -4629,7 +4629,7 @@ qemudDomainMigratePrepare2 (virConnectPt > * URI when passing it to the qemu monitor, so bad > * characters in hostname part don't matter. > */ > - if (!STREQLEN (uri_in, "tcp:", 6)) { > + if (!STRPREFIX (uri_in, "tcp:")) { > qemudReportError (dconn, NULL, NULL, VIR_ERR_INVALID_ARG, > "%s", _("only tcp URIs are supported for KVM migrations")); > goto cleanup; Yeah, that's the way to fix this. The STREQLEN(uri_in, "tcp:", 6) is a leftover from the KVM migration to QEMU migration implementation; in the KVM migration, you would use "tcp://", which would be the correct 6 characters, but in the QEMU migration implementation, you just use "tcp:". I guess I just forgot to fix this up. -- Chris Lalancette -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list