net.dns: Don't attempt to cache unparsed data (fixes #1056)
authorKim Alvefur <zash@zash.se>
Sat, 09 Jun 2018 15:35:03 +0200
changeset 8903 fcf42bd7d067
parent 8902 c72a6226ee31
child 8904 eae606b9266c
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
net/dns.lua
--- a/net/dns.lua	Sat Jun 09 00:09:25 2018 +0200
+++ b/net/dns.lua	Sat Jun 09 15:35:03 2018 +0200
@@ -672,7 +672,7 @@
 	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