]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:provision - use the new "interface_ips" python call to detect the right host IPv4...
authorMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Thu, 4 Mar 2010 09:29:33 +0000 (10:29 +0100)
committerMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Thu, 4 Mar 2010 09:38:36 +0000 (10:38 +0100)
Inform the user when there are more possibilities (so he can check for the
right address and otherwise he is able to do an immediate reprovision) and no
possibility at all (then we fall back to the loopback address "127.0.0.1" - this
is thought for testing purposes).

I think this should be enough for closing bug #5484.

source4/scripting/python/samba/provision.py

index 450881c41ff7f6d81c5193508cd893aef26fdbdd..cb90141730b19ac9d0bd87e91e10f35dc2e8cdc8 100644 (file)
@@ -1182,14 +1182,14 @@ def provision(setup_dir, message, session_info,
     paths.bind_gid = bind_gid
 
     if hostip is None:
-        try:
-            for ip in socket.getaddrinfo(names.hostname, None, socket.AF_INET, socket.AI_CANONNAME, socket.IPPROTO_IP):
-                if hostip is None:
-                    hostip = ip[-1][0]
-                if hostip.startswith('127.0.0.') and (not ip[-1][0].startswith('127.0.0.')):
-                    hostip = ip[-1][0]
-        except socket.gaierror, (socket.EAI_NODATA, msg):
-            hostip = None
+        hostips = glue.interface_ips(lp)
+        if len(hostips) == 0:
+            message("No external IPv4 address has been found: I use the loopback.")
+            hostip = '127.0.0.1'
+        else:
+            hostip = hostips[0]
+            if len(hostips) > 1:
+                message("More than one IPv4 address found: I use " + hostip + ".")
 
     if hostip6 is None:
         try: