Make sure that hostname specified by user is not an IP address.

ticket 1375
This commit is contained in:
Jan Cholasta 2011-07-25 17:14:01 +02:00 committed by Rob Crittenden
parent 53ab352b4a
commit 9e7a3e7f3c
3 changed files with 10 additions and 1 deletions

View File

@ -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

View File

@ -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]

View File

@ -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