diff options
author | daurnimator <quae@daurnimator.com> | 2014-06-25 12:15:00 -0400 |
---|---|---|
committer | daurnimator <quae@daurnimator.com> | 2014-06-25 12:15:00 -0400 |
commit | 55a097981ec6c98f4dd3115e143c066fbe90d8e3 (patch) | |
tree | 0abf62b01c874a1291ff7c237d37364ef16321b8 /net | |
parent | 9c0da6a29b9d6260909c84f02355488dbd4e414d (diff) | |
download | prosody-55a097981ec6c98f4dd3115e143c066fbe90d8e3.tar.gz prosody-55a097981ec6c98f4dd3115e143c066fbe90d8e3.zip |
net/server_*: Fix addclient: LuaSocket 3.0-rc1 sometimes returns EALREADY instead of EINPROGRESS when the dns lookup has multiple results
Diffstat (limited to 'net')
-rw-r--r-- | net/server_event.lua | 2 | ||||
-rw-r--r-- | net/server_select.lua | 2 |
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 |