Software / code / prosody
Annotate
teal-src/util/poll.d.tl @ 12468:353836684009
net.connect: Fix accumulation of connection attempt references
Connection attempts that failed the Happy Eyeballs race were not
unreferenced and would accumulate.
Tested by inspecting the 'pending_connections_map' after establishing
s2s with a s2s target where the IPv6 port has a -j DROP rule causing it
to time out and the IPv4 attempt wins the race.
Expected is that the losing connection stays around until net.server
timeouts kick in where it should be removed. The map table should tend
towards being empty during idle times.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 20 Apr 2022 22:41:54 +0200 |
| parent | 12316:6bb2f660f689 |
| rev | line source |
|---|---|
|
11432
113f3912c7cb
util: Add Teal interface definition files
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 local record state |
|
113f3912c7cb
util: Add Teal interface definition files
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 enum waiterr |
|
113f3912c7cb
util: Add Teal interface definition files
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 "timeout" |
|
113f3912c7cb
util: Add Teal interface definition files
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 "signal" |
|
113f3912c7cb
util: Add Teal interface definition files
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 end |
|
11459
86904555bffc
teal: Use new integer support in Teal 0.13.0
Kim Alvefur <zash@zash.se>
parents:
11432
diff
changeset
|
6 add : function (state, integer, boolean, boolean) : boolean |
|
86904555bffc
teal: Use new integer support in Teal 0.13.0
Kim Alvefur <zash@zash.se>
parents:
11432
diff
changeset
|
7 add : function (state, integer, boolean, boolean) : nil, string, integer |
|
86904555bffc
teal: Use new integer support in Teal 0.13.0
Kim Alvefur <zash@zash.se>
parents:
11432
diff
changeset
|
8 set : function (state, integer, boolean, boolean) : boolean |
|
86904555bffc
teal: Use new integer support in Teal 0.13.0
Kim Alvefur <zash@zash.se>
parents:
11432
diff
changeset
|
9 set : function (state, integer, boolean, boolean) : nil, string, integer |
|
86904555bffc
teal: Use new integer support in Teal 0.13.0
Kim Alvefur <zash@zash.se>
parents:
11432
diff
changeset
|
10 del : function (state, integer) : boolean |
|
86904555bffc
teal: Use new integer support in Teal 0.13.0
Kim Alvefur <zash@zash.se>
parents:
11432
diff
changeset
|
11 del : function (state, integer) : nil, string, integer |
|
86904555bffc
teal: Use new integer support in Teal 0.13.0
Kim Alvefur <zash@zash.se>
parents:
11432
diff
changeset
|
12 wait : function (state, integer) : integer, boolean, boolean |
|
86904555bffc
teal: Use new integer support in Teal 0.13.0
Kim Alvefur <zash@zash.se>
parents:
11432
diff
changeset
|
13 wait : function (state, integer) : nil, string, integer |
|
86904555bffc
teal: Use new integer support in Teal 0.13.0
Kim Alvefur <zash@zash.se>
parents:
11432
diff
changeset
|
14 wait : function (state, integer) : nil, waiterr |
|
86904555bffc
teal: Use new integer support in Teal 0.13.0
Kim Alvefur <zash@zash.se>
parents:
11432
diff
changeset
|
15 getfd : function (state) : integer |
|
11432
113f3912c7cb
util: Add Teal interface definition files
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 end |
|
113f3912c7cb
util: Add Teal interface definition files
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 |
|
113f3912c7cb
util: Add Teal interface definition files
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 local record lib |
|
113f3912c7cb
util: Add Teal interface definition files
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 new : function () : state |
|
12316
6bb2f660f689
util.poll: Add support for the poll() API
Kim Alvefur <zash@zash.se>
parents:
12315
diff
changeset
|
20 EEXIST : integer |
|
6bb2f660f689
util.poll: Add support for the poll() API
Kim Alvefur <zash@zash.se>
parents:
12315
diff
changeset
|
21 EMFILE : integer |
|
11459
86904555bffc
teal: Use new integer support in Teal 0.13.0
Kim Alvefur <zash@zash.se>
parents:
11432
diff
changeset
|
22 ENOENT : integer |
|
12315
cf2086a1bd45
util.poll: Expose API (epoll or select) used
Kim Alvefur <zash@zash.se>
parents:
11459
diff
changeset
|
23 enum api_backend |
|
cf2086a1bd45
util.poll: Expose API (epoll or select) used
Kim Alvefur <zash@zash.se>
parents:
11459
diff
changeset
|
24 "epoll" |
|
12316
6bb2f660f689
util.poll: Add support for the poll() API
Kim Alvefur <zash@zash.se>
parents:
12315
diff
changeset
|
25 "poll" |
|
12315
cf2086a1bd45
util.poll: Expose API (epoll or select) used
Kim Alvefur <zash@zash.se>
parents:
11459
diff
changeset
|
26 "select" |
|
cf2086a1bd45
util.poll: Expose API (epoll or select) used
Kim Alvefur <zash@zash.se>
parents:
11459
diff
changeset
|
27 end |
|
cf2086a1bd45
util.poll: Expose API (epoll or select) used
Kim Alvefur <zash@zash.se>
parents:
11459
diff
changeset
|
28 api : api_backend |
|
11432
113f3912c7cb
util: Add Teal interface definition files
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 end |
|
113f3912c7cb
util: Add Teal interface definition files
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
30 |
|
113f3912c7cb
util: Add Teal interface definition files
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 return lib |