summaryrefslogtreecommitdiffstats
path: root/install/tools/ipa-dns-install
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2010-12-01 17:22:56 +0100
committerRob Crittenden <rcritten@redhat.com>2010-12-20 11:27:34 -0500
commitee4d2739f11465ba6a7d817f9b988da5bfe86e2c (patch)
tree2640194c2e0adb7a95471420250b9b9ce0eb702f /install/tools/ipa-dns-install
parentb328d845deaa2f894a6842a9920f46ea341572f2 (diff)
downloadfreeipa-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-xinstall/tools/ipa-dns-install23
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