From 0ab240e0eb67622774b5a1c6f5b829db3a617721 Mon Sep 17 00:00:00 2001
From: Matthew Wild <mwild1@gmail.com>
Date: Thu, 3 Dec 2009 01:10:08 +0000
Subject: net.dns: Port some DNS fixes to the resolver:feed() function for
 net.adns to use

---
 net/dns.lua | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

(limited to 'net')

diff --git a/net/dns.lua b/net/dns.lua
index c50e893c..bd2e6767 100644
--- a/net/dns.lua
+++ b/net/dns.lua
@@ -768,21 +768,18 @@ function resolver:feed(sock, packet)
 	self.time = socket.gettime();
 
 	local response = self:decode(packet);
-	if response then
+	if response and self.active[response.header.id]
+		and self.active[response.header.id][response.question.raw] then
 		--print('received response');
 		--self.print(response);
 
-		for i,section in pairs({ 'answer', 'authority', 'additional' }) do
-			for j,rr in pairs(response[section]) do
-				self:remember(rr, response.question[1].type);
-			end
+		for j,rr in pairs(response.answer) do
+			self:remember(rr, response.question[1].type);
 		end
 
 		-- retire the query
 		local queries = self.active[response.header.id];
-		if queries[response.question.raw] then
-			queries[response.question.raw] = nil;
-		end
+		queries[response.question.raw] = nil;
 		if not next(queries) then self.active[response.header.id] = nil; end
 		if not next(self.active) then self:closeall(); end
 
-- 
cgit v1.2.3