Software /
code /
prosody
Annotate
net/connlisteners.lua @ 8528:67311cda0625
net.server_select: Better detection of errors for outgoing connections
On connection failure, a socket is marked readable and writable. So
to detect initial connection failures (connection refused, etc.) we
now watch for sockets becoming readable during initial connection,
and also read from readable sockets before writing to writable
sockets.
This should fix 'onconnect' being called for outgoing connections
that actually failed.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 23 Feb 2018 15:30:00 +0000 |
parent | 7359:a5a080c12c96 |
child | 8555:4f0f5b49bb03 |
rev | line source |
---|---|
4792
bf107d9d4962
net.connlisteners: Add COMPAT stub, use portmanager!
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 -- COMPAT w/pre-0.9 |
bf107d9d4962
net.connlisteners: Add COMPAT stub, use portmanager!
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
2 local log = require "util.logger".init("net.connlisteners"); |
bf107d9d4962
net.connlisteners: Add COMPAT stub, use portmanager!
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 local traceback = debug.traceback; |
bf107d9d4962
net.connlisteners: Add COMPAT stub, use portmanager!
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 |
6780
647adfd8f738
net.*: Remove use of module() function
Kim Alvefur <zash@zash.se>
parents:
4797
diff
changeset
|
5 local _ENV = nil; |
4792
bf107d9d4962
net.connlisteners: Add COMPAT stub, use portmanager!
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 |
6780
647adfd8f738
net.*: Remove use of module() function
Kim Alvefur <zash@zash.se>
parents:
4797
diff
changeset
|
7 local function fail() |
7359
a5a080c12c96
Update every link to the documentation to use HTTPS
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
6780
diff
changeset
|
8 log("error", "Attempt to use legacy connlisteners API. For more info see https://prosody.im/doc/developers/network"); |
4792
bf107d9d4962
net.connlisteners: Add COMPAT stub, use portmanager!
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
9 log("error", "Legacy connlisteners API usage, %s", traceback("", 2)); |
bf107d9d4962
net.connlisteners: Add COMPAT stub, use portmanager!
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
10 end |
bf107d9d4962
net.connlisteners: Add COMPAT stub, use portmanager!
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 |
6780
647adfd8f738
net.*: Remove use of module() function
Kim Alvefur <zash@zash.se>
parents:
4797
diff
changeset
|
12 return { |
647adfd8f738
net.*: Remove use of module() function
Kim Alvefur <zash@zash.se>
parents:
4797
diff
changeset
|
13 register = fail; |
647adfd8f738
net.*: Remove use of module() function
Kim Alvefur <zash@zash.se>
parents:
4797
diff
changeset
|
14 register = fail; |
647adfd8f738
net.*: Remove use of module() function
Kim Alvefur <zash@zash.se>
parents:
4797
diff
changeset
|
15 get = fail; |
647adfd8f738
net.*: Remove use of module() function
Kim Alvefur <zash@zash.se>
parents:
4797
diff
changeset
|
16 start = fail; |
647adfd8f738
net.*: Remove use of module() function
Kim Alvefur <zash@zash.se>
parents:
4797
diff
changeset
|
17 -- epic fail |
647adfd8f738
net.*: Remove use of module() function
Kim Alvefur <zash@zash.se>
parents:
4797
diff
changeset
|
18 }; |