Changeset

10619:ef620906ab82

Merge 0.11->trunk
author Kim Alvefur <zash@zash.se>
date Fri, 24 Jan 2020 23:28:15 +0100
parents 10617:8941bebd64e4 (current diff) 10618:232841373711 (diff)
children 10620:09d98cd38fe2
files plugins/mod_admin_telnet.lua
diffstat 1 files changed, 19 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_admin_telnet.lua	Fri Jan 24 16:57:25 2020 +0000
+++ b/plugins/mod_admin_telnet.lua	Fri Jan 24 23:28:15 2020 +0100
@@ -1177,36 +1177,49 @@
 
 def_env.dns = {};
 local adns = require"net.adns";
-local dns = require"net.dns";
+
+local function get_resolver(session)
+	local resolver = session.dns_resolver;
+	if not resolver then
+		resolver = adns.resolver();
+		session.dns_resolver = resolver;
+	end
+	return resolver;
+end
 
 function def_env.dns:lookup(name, typ, class)
+	local resolver = get_resolver(self.session);
 	local ret = "Query sent";
 	local print = self.session.print;
 	local function handler(...)
 		ret = "Got response";
 		print(...);
 	end
-	adns.lookup(handler, name, typ, class);
+	resolver:lookup(handler, name, typ, class);
 	return true, ret;
 end
 
 function def_env.dns:addnameserver(...)
-	dns._resolver:addnameserver(...)
+	local resolver = get_resolver(self.session);
+	resolver._resolver:addnameserver(...)
 	return true
 end
 
 function def_env.dns:setnameserver(...)
-	dns._resolver:setnameserver(...)
+	local resolver = get_resolver(self.session);
+	resolver._resolver:setnameserver(...)
 	return true
 end
 
 function def_env.dns:purge()
-	dns.purge()
+	local resolver = get_resolver(self.session);
+	resolver._resolver:purge()
 	return true
 end
 
 function def_env.dns:cache()
-	return true, "Cache:\n"..tostring(dns.cache())
+	local resolver = get_resolver(self.session);
+	return true, "Cache:\n"..tostring(resolver._resolver.cache)
 end
 
 def_env.http = {};