Diff

net/server_epoll.lua @ 9498:cc593002f2e2

net.server_epoll: Check return conditions of early socket setup
author Kim Alvefur <zash@zash.se>
date Fri, 12 Oct 2018 17:28:08 +0200
parent 9497:183ff7a8051b
child 9499:36e379f058c8
line wrap: on
line diff
--- a/net/server_epoll.lua	Fri Oct 12 16:26:19 2018 +0200
+++ b/net/server_epoll.lua	Fri Oct 12 17:28:08 2018 +0200
@@ -643,8 +643,10 @@
 		return nil, "invalid socket type";
 	end
 	local conn, err = create();
-	conn:settimeout(0);
-	conn:connect(addr, port);
+	local ok, err = conn:settimeout(0);
+	if not ok then return ok, err; end
+	local ok, err = conn:connect(addr, port);
+	if not ok and err ~= "timeout" then return ok, err; end
 	local client = wrapsocket(conn, nil, read_size, listeners, tls_ctx)
 	local ok, err = client:init();
 	if not ok then return ok, err; end