diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2010-12-01 17:22:56 +0100 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2010-12-20 11:27:34 -0500 |
commit | ee4d2739f11465ba6a7d817f9b988da5bfe86e2c (patch) | |
tree | 2640194c2e0adb7a95471420250b9b9ce0eb702f /install/tools/ipa-dns-install | |
parent | b328d845deaa2f894a6842a9920f46ea341572f2 (diff) | |
download | freeipa-ee4d2739f11465ba6a7d817f9b988da5bfe86e2c.tar.gz freeipa-ee4d2739f11465ba6a7d817f9b988da5bfe86e2c.tar.xz freeipa-ee4d2739f11465ba6a7d817f9b988da5bfe86e2c.zip |
Make the IPA installer IPv6 friendly
Notable changes include:
* parse AAAA records in dnsclient
* also ask for AAAA records when verifying FQDN
* do not use functions that are not IPv6 aware - notably socket.gethostbyname()
The complete list of functions was taken from http://www.akkadia.org/drepper/userapi-ipv6.html
section "Interface Checklist"
Diffstat (limited to 'install/tools/ipa-dns-install')
-rwxr-xr-x | install/tools/ipa-dns-install | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/install/tools/ipa-dns-install b/install/tools/ipa-dns-install index bf6679e38..a91938f9e 100755 --- a/install/tools/ipa-dns-install +++ b/install/tools/ipa-dns-install @@ -62,16 +62,19 @@ def parse_options(): def resolve_host(host_name): ip = None try: - ip = socket.gethostbyname(host_name) - - if ip == "127.0.0.1" or ip == "::1": - print "The hostname resolves to the localhost address (127.0.0.1/::1)" - print "Please change your /etc/hosts file so that the hostname" - print "resolves to the ip address of your network interface." - print "" - print "Please fix your /etc/hosts file and restart the setup program" - return None - + addrinfos = socket.getaddrinfo(host_name, None, + socket.AF_UNSPEC, socket.SOCK_DGRAM) + for ai in addrinfos: + ip = ai[4][0] + if ip == "127.0.0.1" or ip == "::1": + print "The hostname resolves to the localhost address (127.0.0.1/::1)" + print "Please change your /etc/hosts file so that the hostname" + print "resolves to the ip address of your network interface." + print "" + print "Please fix your /etc/hosts file and restart the setup program" + return None + + ip = addrinfos[0][4][0] except: print "Unable to lookup the IP address of the provided host" return ip |