[PATCH v2 1/2] report error when specifying wrong desturi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx>

---
 src/libvirt.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/src/libvirt.c b/src/libvirt.c
index a4789bc..52d3278 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -3571,12 +3571,29 @@ virDomainMigratePeer2Peer (virDomainPtr domain,
                            const char *uri,
                            unsigned long bandwidth)
 {
+    xmlURIPtr tempuri = NULL;
+
     if (!domain->conn->driver->domainMigratePerform) {
         virLibConnError (domain->conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
         virDispatchError(domain->conn);
         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
      * until the migration is complete.
      */
-- 
1.7.1

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]