net.adns: Don't treat locally-initiated disconnects as fatal with libevent backend...
[prosody.git] / net / adns.lua
index d1876b0fc1d6e6fc2bf23264c41f302d881cf04b..0121881ae09ced15be6b77c0c7566171daa38405 100644 (file)
@@ -54,13 +54,15 @@ function new_async_socket(sock, resolver)
                end
        end
        function listener.ondisconnect(conn, err)
-               log("warn", "DNS socket for %s disconnected: %s", peername, err);
-               local servers = resolver.server;
-               if resolver.socketset[conn] == resolver.best_server and resolver.best_server == #servers then
-                       log("error", "Exhausted all %d configured DNS servers, next lookup will try %s again", #servers, servers[1]);
-               end
+               if err then
+                       log("warn", "DNS socket for %s disconnected: %s", peername, err);
+                       local servers = resolver.server;
+                       if resolver.socketset[conn] == resolver.best_server and resolver.best_server == #servers then
+                               log("error", "Exhausted all %d configured DNS servers, next lookup will try %s again", #servers, servers[1]);
+                       end
                
-               resolver:servfail(conn); -- Let the magic commence
+                       resolver:servfail(conn); -- Let the magic commence
+               end
        end
        handler = server.wrapclient(sock, "dns", 53, listener);
        if not handler then