Daniel P. Berrange wrote:
On Tue, Mar 31, 2009 at 10:07:31AM +0200, Gerrit.Slomma(a)drv-bund.de
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