aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2018-06-09 15:35:03 +0200
committerKim Alvefur <zash@zash.se>2018-06-09 15:35:03 +0200
commitfb63de9331f4fb1c50e11b2f1bcbaab53209f45f (patch)
tree0f11557feaea88338eda25d2b8a3fb2dc9afcc85
parentd8100c6004f4de2bef68e8fdafaf2b617658cda4 (diff)
downloadprosody-fb63de9331f4fb1c50e11b2f1bcbaab53209f45f.tar.gz
prosody-fb63de9331f4fb1c50e11b2f1bcbaab53209f45f.zip
net.dns: Don't attempt to cache unparsed data (fixes #1056)
rr[qtype:lower()] can be nil. I think this happens if the type does not have a parser. Also see #819 #976
-rw-r--r--net/dns.lua2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/dns.lua b/net/dns.lua
index b69ba953..8a7d4e7a 100644
--- a/net/dns.lua
+++ b/net/dns.lua
@@ -672,7 +672,7 @@ function resolver:remember(rr, type) -- - - - - - - - - - - - - - remember
self.cache = self.cache or setmetatable({}, cache_metatable);
local rrs = get(self.cache, qclass, type, qname) or
set(self.cache, qclass, type, qname, setmetatable({}, rrs_metatable));
- if not rrs[rr[qtype:lower()]] then
+ if rr[qtype:lower()] and not rrs[rr[qtype:lower()]] then
rrs[rr[qtype:lower()]] = true;
append(rrs, rr);
end