aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/adns.lua7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/adns.lua b/net/adns.lua
index cb784d40..fb68ea71 100644
--- a/net/adns.lua
+++ b/net/adns.lua
@@ -3,7 +3,7 @@ local dns = require "net.dns";
local log = require "util.logger".init("adns");
-local coroutine, tostring = coroutine, tostring;
+local coroutine, tostring, pcall = coroutine, tostring, pcall;
module "adns"
@@ -14,7 +14,10 @@ function lookup(handler, qname, qtype, qclass)
dns.query(qname, qtype, qclass);
coroutine.yield(nil); -- Wait for reply
log("debug", "Reply for "..qname.." (%s)", tostring(coroutine.running()));
- handler(dns.peek(qname, qtype, qclass));
+ local ok, err = pcall(handler, dns.peek(qname, qtype, qclass));
+ if not ok then
+ log("debug", "Error in DNS response handler: %s", tostring(err));
+ end
end)();
end