net.dns: Clean up query list when a server is marked down
authorMatthew Wild <mwild1@gmail.com>
Sat, 22 Dec 2012 12:06:36 +0000 (12:06 +0000)
committerMatthew Wild <mwild1@gmail.com>
Sat, 22 Dec 2012 12:06:36 +0000 (12:06 +0000)
net/dns.lua

index 5b32a56ccf2743cba0b6b9245a91fc764fe28e27..1950ba73e35180f1645c91f8beec7668f75e5ef2 100644 (file)
@@ -549,6 +549,7 @@ function resolver:decode(packet, force)    -- - - - - - - - - - - - - - decode
 
        if not force then
                if not self.active[response.header.id] or not self.active[response.header.id][response.question.raw] then
+                       self.active[response.header.id] = nil;
                        return nil;
                end
        end
@@ -796,6 +797,9 @@ function resolver:servfail(sock)
                                end
                        end
                end
+               if next(queries) == nil then
+                       self.active[id] = nil;
+               end
        end
 
        if num == self.best_server then
@@ -852,6 +856,7 @@ function resolver:receive(rset)    -- - - - - - - - - - - - - - - - -  receive
                                                set(self.wanted, q.class, q.type, q.name, nil);
                                        end
                                end
+                               
                        end
                end
        end