Software /
code /
prosody
Changeset
973:b091a1a7273b
net.adns: Catch errors in DNS response callbacks
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 10 Apr 2009 10:30:50 +0100 |
parents | 971:dd736391bd41 |
children | 974:82f7261c0482 |
files | net/adns.lua |
diffstat | 1 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/net/adns.lua Wed Apr 08 23:20:45 2009 +0100 +++ b/net/adns.lua Fri Apr 10 10:30:50 2009 +0100 @@ -3,7 +3,7 @@ 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 @@ 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