aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordaurnimator <quae@daurnimator.com>2014-06-25 12:15:00 -0400
committerdaurnimator <quae@daurnimator.com>2014-06-25 12:15:00 -0400
commitb124e4e22644b0f9d10ec7638d532fbff016e276 (patch)
tree0abf62b01c874a1291ff7c237d37364ef16321b8
parent2d5b25a9375156bba8b3ffa97a95b9cb2fe35a9d (diff)
downloadprosody-b124e4e22644b0f9d10ec7638d532fbff016e276.tar.gz
prosody-b124e4e22644b0f9d10ec7638d532fbff016e276.zip
net/server_*: Fix addclient: LuaSocket 3.0-rc1 sometimes returns EALREADY instead of EINPROGRESS when the dns lookup has multiple results
-rw-r--r--net/server_event.lua2
-rw-r--r--net/server_select.lua2
2 files changed, 2 insertions, 2 deletions
diff --git a/net/server_event.lua b/net/server_event.lua
index a3087847..b79fc463 100644
--- a/net/server_event.lua
+++ b/net/server_event.lua
@@ -761,7 +761,7 @@ do
end
client:settimeout( 0 ) -- set nonblocking
local res, err = client:connect( addr, serverport ) -- connect
- if res or ( err == "timeout" ) then
+ if res or ( err == "timeout" or err == "Operation already in progress" ) then
if client.getsockname then
addr = client:getsockname( )
end
diff --git a/net/server_select.lua b/net/server_select.lua
index 4a36617c..0aaea4be 100644
--- a/net/server_select.lua
+++ b/net/server_select.lua
@@ -966,7 +966,7 @@ local addclient = function( address, port, listeners, pattern, sslctx, typ )
end
client:settimeout( 0 )
local ok, err = client:connect( address, port )
- if ok or err == "timeout" then
+ if ok or err == "timeout" or err == "Operation already in progress" then
return wrapclient( client, address, port, listeners, pattern, sslctx )
else
return nil, err