aboutsummaryrefslogtreecommitdiffstats
path: root/net/server_epoll.lua
Commit message (Collapse)AuthorAgeFilesLines
* net.server_epoll: Make log tag accessible as a fieldKim Alvefur2019-09-291-1/+3
| | | | To allow referencing connections by id instead of tostring form
* net.server_epoll: Make it easy to override handler for incoming dataKim Alvefur2019-09-291-2/+7
|
* net.server: Handle server name (SNI) as extra argumentKim Alvefur2019-09-011-0/+6
| | | | | | Code added in 75d2874502c3, 9a905888b96c and adc0672b700e uses this field. See #409 and #1408
* net.server: Accept and save an 'extra' field for client connectionsKim Alvefur2019-09-011-5/+6
| | | | | This lets code attach some extra data to be attached to client connections.
* net.server_epoll: Add support for opportunistic writesKim Alvefur2019-08-281-0/+8
| | | | | | | | This tries to flush data to the underlying sockets when receiving writes. This should lead to fewer timer objects being around. On the other hand, this leads to more and smaller writes which may translate to more TCP/IP packets being sent, depending on how the kernel handles this. This trades throughput for lower latency.
* server_epoll: Add native support for per socket bandwith limitsKim Alvefur2016-12-181-0/+17
|
* net.server_epoll: Remove unused local [luacheck]Kim Alvefur2019-07-261-1/+0
|
* net.server_epoll: Overhaul logging with one log sink per connectionKim Alvefur2019-07-261-23/+41
|
* net.server_epoll: Deprecate libevent emulation layerKim Alvefur2019-07-241-0/+1
|
* net.server_epoll: Return errors from creating socketsKim Alvefur2019-07-231-0/+1
| | | | | | Prevents error from attempting to index nil conn on such failure. Silences luacheck warning about the 'err' variable being unused
* net.server_epoll: Add experimental option to close connections in case of ↵Kim Alvefur2019-05-251-0/+8
| | | | | | | listener error Sometimes such errors leave sessions in an inconsistent state, so it might be better to close them early.
* net.server_epoll: Return listener error messageKim Alvefur2019-05-251-1/+1
|
* Merge 0.11->trunkKim Alvefur2019-05-041-1/+1
|\
| * net.server_epoll: Restore wantread flag after pause (fixes #1354)Kim Alvefur2019-05-041-1/+1
| | | | | | | | | | | | | | | | | | If a chunk of data has been received that is larger than the amount read at a time, then the connection is paused for a short time after which it tries to read some more. If, after that, there is still more data to read, it should do the same thing. However, because the "want read" flag is removed and was restored after the delayed reading, it would not schedule another delayed read.
* | Merge 0.11->trunkKim Alvefur2019-03-281-6/+9
|\|
| * net.server_epoll: Skip delayed continuation read on paused connectionsKim Alvefur2019-03-281-1/+1
| | | | | | | | | | | | This should prevent #1333 in cases where LuaSockets buffer is "dirty", i.e. contains more data after a read, where it gets resumed with a short delay.
| * net.server_epoll: Handle LuaSec wantread/wantwrite conditions before ↵Kim Alvefur2019-03-281-5/+8
| | | | | | | | | | | | | | callbacks (fixes #1333) This prevents the :set(true) call from resuming a connection that was paused in the onincoming callback.
* | net.server_epoll: Optimize timer handlingKim Alvefur2019-03-121-53/+30
| |
* | net.server: Only add alternate SNI contexts if at least one is providedKim Alvefur2019-03-111-1/+1
| | | | | | | | Fixes use of <starttls/> when a client sends SNI, which would send no certificate otherwise.
* | net.server_epoll: Add support for SNI (#409)Kim Alvefur2019-03-101-0/+8
| |
* | net.server: New API for creating server listenersKim Alvefur2018-09-131-4/+14
| | | | | | | | server.listen(interface, port, listeners, options);
* | net.server_epoll: Increase send_timeout to 3 minutes (to match server_event)Kim Alvefur2019-02-091-1/+1
| | | | | | | | The separate connect_timeout means we can afford a longer send_timeout
* | net.server_epoll: Separate timeout for initial connection attemptsKim Alvefur2019-02-091-1/+4
| | | | | | | | server_event has this separation already
* | Merge 0.11->trunkKim Alvefur2019-02-091-5/+5
|\|
| * net.server_epoll: Rename handshake_timeout to ssl_handshake_timeout (fixes ↵Kim Alvefur2019-02-091-3/+3
| | | | | | | | | | | | #1319) This is to match server_event, see 430797a8fc81
| * net.server_epoll: Use send_timeout for write timout like other ↵Kim Alvefur2019-02-071-2/+2
| | | | | | | | implementations (fixes #1316)
* | net.server_epoll: Bail on callback errorKim Alvefur2018-12-081-0/+1
| | | | | | | | | | An error calling a callback would be considered a truthy return value, which is not right.
* | net.server_epoll: Call onconnect right after accept()ing a new clientKim Alvefur2018-12-081-0/+2
| |
* | Merge 0.11->trunkKim Alvefur2018-11-301-2/+16
|\|
| * server_epoll: Add comments describing config optionsKim Alvefur2018-11-301-0/+15
| |
| * net.server_epoll: Remove unused config optionKim Alvefur2018-11-301-1/+0
| |
| * server_epoll: Increase write timeoutKim Alvefur2018-11-301-1/+1
| | | | | | | | 7 may be too low for some slow machines and/or networks
* | net.server_epoll: Use method to update peername on connectKim Alvefur2018-10-291-3/+1
| |
* | net.server_epoll: Reschedule delayed timers relative to current timeKim Alvefur2018-10-281-3/+7
| | | | | | | | | | This should normally never happen, but can be reproduced by suspending the process a while.
* | net.server: Add an API for holding writes of outgoing dataKim Alvefur2018-10-251-2/+18
|/
* net.server_epoll: Shuffle variables earlier to improve readabilityKim Alvefur2018-10-271-1/+1
|
* net.server_epoll: Special handling of signal interruptsKim Alvefur2018-10-121-1/+1
|
* net.server_epoll: Ignore ENOENT when deregitering socketKim Alvefur2018-10-121-1/+2
| | | | It should not really happen
* net.server_epoll: Graceful handling of registering already added socketKim Alvefur2018-10-121-1/+8
|
* net.server: Swich method for connecting sockets with remotesKim Alvefur2018-10-121-1/+1
| | | | | | | LuaSocket TCP sockets have have both :connect and :setpeername, which are the exact same function, however UDP sockets only have :setpeername. Switching to :setpeername allows most of this code to be generic wrt TCP/UDP.
* net.server_epoll: Check return conditions of early socket setupKim Alvefur2018-10-121-2/+4
|
* net.server_epoll: Add support for the conn_type argument to addclientKim Alvefur2018-10-121-8/+16
|
* net.server_epoll: Assert successful creation of util.poll handleKim Alvefur2018-10-111-1/+1
|
* net.server_epoll: Update copyright yearKim Alvefur2018-10-111-1/+1
|
* net.server: Require IP address as argument to addclient (no DNS names)Kim Alvefur2018-10-111-4/+15
| | | | The net.connect API should be used to resolve DNS names first
* net.server_epoll: Log error number from wait()Kim Alvefur2018-10-071-1/+1
|
* net.server_epoll: Pass error number to loggingKim Alvefur2018-10-061-1/+1
| | | | Why do we ignore unused secondaries?
* net.server_epoll: Fix luacheck annotationKim Alvefur2018-10-061-1/+1
|
* net.server_epoll: Make :set_send a noop, should fix net.adnsKim Alvefur2018-10-061-4/+3
| | | | | | This is also a noop in server_event. Supposedly meant to prevent buffered writes from being sent to the socket, but that path becomes unreachable when net.adns replaces the public send method
* net.server_epoll: Inherit Direct TLS flag from servers to their clientsKim Alvefur2018-09-141-1/+2
|