mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Make sure that hostname specified by user is not an IP address.
ticket 1375
This commit is contained in:
parent
53ab352b4a
commit
9e7a3e7f3c
@ -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
|
||||
|
@ -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]
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user