configmanager: nameprep VirtualHost and Component names
[prosody.git] / net / adns.lua
index a3b07b09dc9b7ca4e87a5a4b495c3767f458c42c..2a3fa8adbad9be872220c0f205eac6ab6d7feed2 100644 (file)
@@ -52,6 +52,7 @@ function new_async_socket(sock, resolver)
        local peername = "<unknown>";
        local listener = {};
        local handler = {};
+       local err;
        function listener.onincoming(conn, data)
                if data then
                        dns.feed(handler, data);
@@ -68,9 +69,9 @@ function new_async_socket(sock, resolver)
                        resolver:servfail(conn); -- Let the magic commence
                end
        end
-       handler = server.wrapclient(sock, "dns", 53, listener);
+       handler, err = server.wrapclient(sock, "dns", 53, listener);
        if not handler then
-               log("warn", "handler is nil");
+               return nil, err;
        end
        
        handler.settimeout = function () end
@@ -79,7 +80,8 @@ function new_async_socket(sock, resolver)
        handler.connect = function (_, ...) return sock:connect(...) end
        --handler.send = function (_, data) _:write(data);  return _.sendbuffer and _.sendbuffer(); end
        handler.send = function (_, data)
-               log("debug", "Sending DNS query to %s", sock:getpeername());
+               local getpeername = sock.getpeername;
+               log("debug", "Sending DNS query to %s", (getpeername and getpeername(sock)) or "<unconnected>");
                return sock:send(data);
        end
        return handler;