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

[libvirt] [PATCH 7/7] storage: Check for duplicate host for incoming pool def



https://bugzilla.redhat.com/show_bug.cgi?id=1171984

Use the new virIsSameHostnameInfo API to determine whether the proposed
storage pool definition matches the existing storage pool definition

Signed-off-by: John Ferlan <jferlan redhat com>
---
 src/conf/storage_conf.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index 4852dfb..c1bc242 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -2415,7 +2415,16 @@ virStoragePoolSourceMatchSingleHost(virStoragePoolSourcePtr poolsrc,
     if (poolsrc->hosts[0].port != defsrc->hosts[0].port)
         return false;
 
-    return STREQ(poolsrc->hosts[0].name, defsrc->hosts[0].name);
+    if (STRNEQ(poolsrc->hosts[0].name, defsrc->hosts[0].name)) {
+        /* Matching just a name isn't reliable as someone could provide
+         * the name for one pool and the IP Address for another pool, so
+         * for a "true" check we must compare the resolved name, but that's
+         * expensive, so only do this check if using different names
+         */
+        return virIsSameHostnameInfo(poolsrc->hosts[0].name,
+                                     defsrc->hosts[0].name);
+    }
+    return true;
 }
 
 
-- 
2.1.0


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