From 5b13d561ee874824d6f4ab70d72307264f22973f Mon Sep 17 00:00:00 2001
From: Kim Alvefur <zash@zash.se>
Date: Wed, 10 Jul 2013 07:45:10 +0200
Subject: net.dns, net.adns: Make sure errors from net.server are propagated
 (thanks asterix)

---
 net/adns.lua | 4 ++--
 net/dns.lua  | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

(limited to 'net')

diff --git a/net/adns.lua b/net/adns.lua
index cd69a627..158747c6 100644
--- a/net/adns.lua
+++ b/net/adns.lua
@@ -68,9 +68,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
diff --git a/net/dns.lua b/net/dns.lua
index 89b50255..cdd949a2 100644
--- a/net/dns.lua
+++ b/net/dns.lua
@@ -622,10 +622,10 @@ function resolver:getsocket(servernum)    -- - - - - - - - - - - - - getsocket
 
 	local err;
 	sock, err = socket.udp();
+	if sock and self.socket_wrapper then sock, err = self.socket_wrapper(sock, self); end
 	if not sock then
 		return nil, err;
 	end
-	if self.socket_wrapper then sock = self.socket_wrapper(sock, self); end
 	sock:settimeout(0);
 	-- todo: attempt to use a random port, fallback to 0
 	sock:setsockname('*', 0);
-- 
cgit v1.2.3