summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/BaseHTTPServer.py26
-rw-r--r--Lib/ftplib.py16
-rw-r--r--Lib/socket.py2
3 files changed, 8 insertions, 36 deletions
diff --git a/Lib/BaseHTTPServer.py b/Lib/BaseHTTPServer.py
index ea5095a..49f8984 100644
--- a/Lib/BaseHTTPServer.py
+++ b/Lib/BaseHTTPServer.py
@@ -93,19 +93,7 @@ class HTTPServer(SocketServer.TCPServer):
"""Override server_bind to store the server name."""
SocketServer.TCPServer.server_bind(self)
host, port = self.socket.getsockname()
- if not host or host == '0.0.0.0':
- host = socket.gethostname()
- try:
- hostname, hostnames, hostaddrs = socket.gethostbyaddr(host)
- except socket.error:
- hostname = host
- else:
- if '.' not in hostname:
- for host in hostnames:
- if '.' in host:
- hostname = host
- break
- self.server_name = hostname
+ self.server_name = socket.getfqdn(host)
self.server_port = port
@@ -418,16 +406,8 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
"""
- (host, port) = self.client_address
- try:
- name, names, addresses = socket.gethostbyaddr(host)
- except socket.error, msg:
- return host
- names.insert(0, name)
- for name in names:
- if '.' in name: return name
- return names[0]
-
+ host, port = self.client_address
+ return socket.getfqdn(host)
# Essentially static class variables
diff --git a/Lib/ftplib.py b/Lib/ftplib.py
index fd9127b..41c3b33 100644
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -41,7 +41,8 @@ import string
# Import SOCKS module if it exists, else standard socket module socket
try:
- import SOCKS; socket = SOCKS
+ import SOCKS; socket = SOCKS; del SOCKS # import SOCKS as socket
+ from socket import getfqdn; socket.getfqdn = getfqdn; del getfqdn
except ImportError:
import socket
@@ -291,17 +292,8 @@ class FTP:
if not passwd: passwd = ''
if not acct: acct = ''
if user == 'anonymous' and passwd in ('', '-'):
- thishost = socket.gethostname()
- # Make sure it is fully qualified
- if not '.' in thishost:
- thisaddr = socket.gethostbyname(thishost)
- firstname, names, unused = \
- socket.gethostbyaddr(thisaddr)
- names.insert(0, firstname)
- for name in names:
- if '.' in name:
- thishost = name
- break
+ # get fully qualified domain name of local host
+ thishost = socket.getfqdn()
try:
if os.environ.has_key('LOGNAME'):
realuser = os.environ['LOGNAME']
diff --git a/Lib/socket.py b/Lib/socket.py
index 3cc8d91..e5180b5 100644
--- a/Lib/socket.py
+++ b/Lib/socket.py
@@ -85,7 +85,7 @@ def getfqdn(name=''):
is returned.
"""
name = name.strip()
- if len(name) == 0:
+ if not name or name == '0.0.0.0':
name = gethostname()
try:
hostname, aliases, ipaddrs = gethostbyaddr(name)