1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

report error when specifying wrong desturi

When we do peer2peer migration, the dest uri is an address of the
target host as seen from the source machine. So we must specify
the ip or hostname of target host in dest uri. If we do not specify
it, report an error to the user.

Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
This commit is contained in:
Wen Congyang 2011-01-12 14:12:29 +08:00 committed by Eric Blake
parent 0444ce1b00
commit 59d13aae32

View File

@ -3571,12 +3571,29 @@ virDomainMigratePeer2Peer (virDomainPtr domain,
const char *uri, const char *uri,
unsigned long bandwidth) unsigned long bandwidth)
{ {
xmlURIPtr tempuri = NULL;
if (!domain->conn->driver->domainMigratePerform) { if (!domain->conn->driver->domainMigratePerform) {
virLibConnError (domain->conn, VIR_ERR_NO_SUPPORT, __FUNCTION__); virLibConnError (domain->conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
virDispatchError(domain->conn); virDispatchError(domain->conn);
return -1; return -1;
} }
tempuri = xmlParseURI(uri);
if (!tempuri) {
virLibConnError (domain->conn, VIR_ERR_INVALID_ARG, __FUNCTION__);
virDispatchError(domain->conn);
return -1;
}
if (!tempuri->server || STRPREFIX(tempuri->server, "localhost")) {
virLibConnError(domain->conn, VIR_ERR_INVALID_ARG, __FUNCTION__);
virDispatchError(domain->conn);
xmlFreeURI(tempuri);
return -1;
}
xmlFreeURI(tempuri);
/* Perform the migration. The driver isn't supposed to return /* Perform the migration. The driver isn't supposed to return
* until the migration is complete. * until the migration is complete.
*/ */