From b6c84446274af5fd3509b6c63c6c54fec0a263f2 Mon Sep 17 00:00:00 2001 From: Alina Quereilhac Date: Sat, 12 May 2012 13:54:55 +0200 Subject: [PATCH] Added a hostbyname cache to src/nepi/util/server.py, to reduce the number of dns requests emitted. --- src/nepi/util/server.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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'): -- 2.47.0