[libvirt] [PATCH v1 3/3] conf: Check migration_address is valid or not during restart

Chen Fan chen.fan.fnst at cn.fujitsu.com
Fri Sep 12 04:33:01 UTC 2014


When enabling the migration_address option, by default it is
set to "127.0.0.1", but it's not a valid address for migration.
so we should add verification and set the default migration_address
to "0.0.0.0".

Signed-off-by: Chen Fan <chen.fan.fnst at cn.fujitsu.com>
---
 src/qemu/qemu.conf                 |  2 +-
 src/qemu/qemu_conf.c               | 10 ++++++++++
 src/qemu/test_libvirtd_qemu.aug.in |  2 +-
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/qemu/qemu.conf b/src/qemu/qemu.conf
index 79bba36..666c303 100644
--- a/src/qemu/qemu.conf
+++ b/src/qemu/qemu.conf
@@ -459,7 +459,7 @@
 
 # Override the listen address for all incoming migrations. Defaults to
 # 0.0.0.0, or :: if both host and qemu are capable of IPv6.
-#migration_address = "127.0.0.1"
+#migration_address = "0.0.0.0"
 
 
 # The default hostname or IP address which will be used by a migration
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 013f3de..2cbf2a6 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -719,6 +719,16 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg,
     }
 
     GET_VALUE_STR("migration_address", cfg->migrationAddress);
+    if (cfg->migrationAddress) {
+        if (STRPREFIX(cfg->migrationAddress, "localhost") ||
+            STREQ(cfg->migrationAddress, "127.0.0.1") ||
+            STREQ(cfg->migrationAddress, "::1") ||
+            STREQ(cfg->migrationAddress, "[::1]")) {
+            virReportError(VIR_ERR_CONF_SYNTAX, "%s",
+                           _("migration_address must be a valid address or hostname"));
+            goto cleanup;
+        }
+    }
 
     GET_VALUE_BOOL("log_timestamp", cfg->logTimestamp);
 
diff --git a/src/qemu/test_libvirtd_qemu.aug.in b/src/qemu/test_libvirtd_qemu.aug.in
index d2bc2c0..30fd27e 100644
--- a/src/qemu/test_libvirtd_qemu.aug.in
+++ b/src/qemu/test_libvirtd_qemu.aug.in
@@ -69,7 +69,7 @@ module Test_libvirtd_qemu =
 { "keepalive_interval" = "5" }
 { "keepalive_count" = "5" }
 { "seccomp_sandbox" = "1" }
-{ "migration_address" = "127.0.0.1" }
+{ "migration_address" = "0.0.0.0" }
 { "migration_host" = "host.example.com" }
 { "migration_port_min" = "49152" }
 { "migration_port_max" = "49215" }
-- 
1.9.3




More information about the libvir-list mailing list