From: Alina Quereilhac Date: Sat, 12 May 2012 11:54:55 +0000 (+0200) Subject: Added a hostbyname cache to src/nepi/util/server.py, to reduce the number of dns... X-Git-Tag: nepi-3.0.0~163^2~3 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=b6c84446274af5fd3509b6c63c6c54fec0a263f2;p=nepi.git Added a hostbyname cache to src/nepi/util/server.py, to reduce the number of dns requests emitted. --- diff --git a/src/nepi/util/server.py b/src/nepi/util/server.py index 6ce11768..c53cc4e3 100644 --- a/src/nepi/util/server.py +++ b/src/nepi/util/server.py @@ -41,6 +41,8 @@ else: SHELL_SAFE = re.compile('^[-a-zA-Z0-9_=+:.,/]*$') +hostbyname_cache = dict() + def openssh_has_persist(): global OPENSSH_HAS_PERSIST if OPENSSH_HAS_PERSIST is None: @@ -569,9 +571,14 @@ def _make_server_key_args(server_key, host, port, args): host = '%s:%s' % (host,port) # Create a temporary server key file tmp_known_hosts = tempfile.NamedTemporaryFile() - + + hostbyname = hostbyname_cache.get(host) + if not hostbyname: + hostbyname = socket.gethostbyname(host) + hostbyname_cache[host] = hostbyname + # Add the intended host key - tmp_known_hosts.write('%s,%s %s\n' % (host, socket.gethostbyname(host), server_key)) + tmp_known_hosts.write('%s,%s %s\n' % (host, hostbyname, server_key)) # If we're not in strict mode, add user-configured keys if os.environ.get('NEPI_STRICT_AUTH_MODE',"").lower() not in ('1','true','on'):