[SCM] Samba Shared Repository - branch master updated

Matthias Dieter Wallnöfer mdw at samba.org
Sun Feb 21 13:41:33 MST 2010


The branch, master has been updated
       via  f2eac3b... s4:provision.py - try to use other addresses than "127.0.0.x" and "::1"
      from  017e401... s4:AD content - Implement the new password settings container

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit f2eac3b6ea6103823dfe034cb30a610599df44ce
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date:   Sun Feb 21 21:30:42 2010 +0100

    s4:provision.py - try to use other addresses than "127.0.0.x" and "::1"
    
    On production systems a user for sure strongly disagrees to use local IP
    addresses (how should the server be accessible?). Therefore if the user didn't
    specify an IP as provision option and in the "/etc/hosts" file we have at
    least one not-local IP which resolves to our hostname use this or one of them.
    
    Notice: if a host has more public IP addresses with the same name assigned the
    behaviour is non-deterministic (well, okay - by the entries order it is). But
    then the user is invited to specify the host IP manually.
    
    This should address bug #5484.

-----------------------------------------------------------------------

Summary of changes:
 source4/scripting/python/samba/provision.py |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py
index 1e1bf48..900df89 100644
--- a/source4/scripting/python/samba/provision.py
+++ b/source4/scripting/python/samba/provision.py
@@ -1213,13 +1213,21 @@ def provision(setup_dir, message, session_info,
 
     if hostip is None:
         try:
-            hostip = socket.getaddrinfo(names.hostname, None, socket.AF_INET, socket.AI_CANONNAME, socket.IPPROTO_IP)[0][-1][0]
+            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
 
     if hostip6 is None:
         try:
-            hostip6 = socket.getaddrinfo(names.hostname, None, socket.AF_INET6, socket.AI_CANONNAME, socket.IPPROTO_IP)[0][-1][0]
+            for ip in socket.getaddrinfo(names.hostname, None, socket.AF_INET6, socket.AI_CANONNAME, socket.IPPROTO_IP):
+                if hostip6 is None:
+                    hostip6 = ip[-1][0]
+                if hostip6 == '::1' and ip[-1][0] != '::1':
+                    hostip6 = ip[-1][0]
         except socket.gaierror, (socket.EAI_NODATA, msg): 
             hostip6 = None
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list