diff options
author | Jan Cholasta <jcholast@redhat.com> | 2011-07-25 17:14:01 +0200 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2011-07-25 01:47:52 -0400 |
commit | 9e7a3e7f3c46f8c2fc0b54353efd642b4178abf7 (patch) | |
tree | af10bdf4ad6d158f5b5182a3c1b546a05de795de | |
parent | 53ab352b4a4b650d2dea39599b8aa36e5431ffa8 (diff) | |
download | freeipa-9e7a3e7f3c46f8c2fc0b54353efd642b4178abf7.tar.gz freeipa-9e7a3e7f3c46f8c2fc0b54353efd642b4178abf7.tar.xz freeipa-9e7a3e7f3c46f8c2fc0b54353efd642b4178abf7.zip |
Make sure that hostname specified by user is not an IP address.
ticket 1375
-rw-r--r-- | ipa-client/ipaclient/ipadiscovery.py | 5 | ||||
-rw-r--r-- | ipapython/ipautil.py | 3 | ||||
-rw-r--r-- | ipaserver/install/installutils.py | 3 |
3 files changed, 10 insertions, 1 deletions
diff --git a/ipa-client/ipaclient/ipadiscovery.py b/ipa-client/ipaclient/ipadiscovery.py index 77727b28e..ecd8275c4 100644 --- a/ipa-client/ipaclient/ipadiscovery.py +++ b/ipa-client/ipaclient/ipadiscovery.py @@ -24,7 +24,7 @@ import ipapython.dnsclient import tempfile import ldap from ldap import LDAPError -from ipapython.ipautil import run, CalledProcessError +from ipapython.ipautil import run, CalledProcessError, valid_ip NOT_FQDN = -1 @@ -119,6 +119,9 @@ class IPADiscovery: if not hostname: return BAD_HOST_CONFIG + if valid_ip(hostname): + return NOT_FQDN + # first, check for an LDAP server for the local domain p = hostname.find(".") if p == -1: #no domain name diff --git a/ipapython/ipautil.py b/ipapython/ipautil.py index 0191662cd..da6e94c85 100644 --- a/ipapython/ipautil.py +++ b/ipapython/ipautil.py @@ -145,6 +145,9 @@ class CheckedIPAddress(netaddr.IPAddress): def is_local(self): return self.interface is not None +def valid_ip(addr): + return netaddr.valid_ipv4(addr) or netaddr.valid_ipv6(addr) + def realm_to_suffix(realm_name): s = realm_name.split(".") terms = ["dc=" + x.lower() for x in s] diff --git a/ipaserver/install/installutils.py b/ipaserver/install/installutils.py index c6e8641e4..df63b8e8c 100644 --- a/ipaserver/install/installutils.py +++ b/ipaserver/install/installutils.py @@ -120,6 +120,9 @@ def verify_fqdn(host_name,no_host_dns=False): if host_name != host_name.lower(): raise RuntimeError("Invalid hostname '%s', must be lower-case." % host_name) + if ipautil.valid_ip(host_name): + raise RuntimeError("IP address not allowed as a hostname") + if no_host_dns: print "Warning: skipping DNS resolution of host", host_name return |