aboutsummaryrefslogtreecommitdiffstats
path: root/net/server_epoll.lua
Commit message (Collapse)AuthorAgeFilesLines
* net.server_epoll: Process all queued events from epoll before timersKim Alvefur2021-10-211-2/+4
| | | | | | | | | Should call timers less frequently when many sockets are waiting for processing. May help under heavy load. Requested by Ge0rG Backport of 2bcd84123eba requested by Roi
* net.server_epoll: Add a hard deadline on shutdown to extra-fix #1670Kim Alvefur2021-09-201-0/+12
| | | | Should ensure shutdown even if sockets somehow take a very long to get closed.
* net.server_epoll: Close sockets added after shutdown signal (fixes #1670)Kim Alvefur2021-09-201-0/+6
| | | | | This should ensure that sockets get closed even if they are added after the quit signal. Otherwise they may keep the server alive.
* net.server_epoll: Fix to preserve ids of readded timersKim Alvefur2021-08-311-2/+2
| | | | | | | Likely affected rescheduling but have no reports of this. After readding a timer, it would have been issued a new id. Rescheduling would use the previous id, thus not working.
* net.server_epoll: Fix off-by-one in 2c559953ad41Kim Alvefur2021-01-101-1/+1
| | | | Thanks tmolitor
* net.server_epoll: Ensure timers can't run more than once per tickKim Alvefur2021-01-081-2/+18
| | | | | | | | This makes sure that a timer that returns 0 (or less) does not prevent runtimers() from completing, as well as making sure a timer added with zero timeout from within a timer does not run until the next tick. Thanks tmolitor
* net.server: Backport client parts of SNI support from trunk (#409)Kim Alvefur2020-08-171-5/+15
| | | | | | | | | | Partial backports of the following commits from trunk: 6c804b6b2ca2 net.http: Pass server name along for SNI (fixes #1408) 75d2874502c3 net.server_select: SNI support (#409) 9a905888b96c net.server_event: Add SNI support (#409) adc0672b700e net.server_epoll: Add support for SNI (#409) d4390c427a66 net.server: Handle server name (SNI) as extra argument
* net.server_epoll: Fix indentationKim Alvefur2020-03-111-3/+3
| | | | | | Some lines seem to have gotten the wrong indentation, possibly caused by Meld which often ignores lines with only whitespace changes and leaves their previous indentation.
* net.server_epoll: Backport timer optimization 6c2370f17027 from trunk (see ↵Kim Alvefur2019-07-081-48/+29
| | | | | | | #1388) The previous timer handling did not scale well and led to high CPU usage with many connections (each with at least an read timeout).
* 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.
* 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: 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)
* 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: 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
|
* net.server_epoll: Catch errors from luasec.wrapKim Alvefur2018-09-141-1/+5
| | | | It throws if given an invalid TLS context
* net.server_epoll: Delay wrapping sockets in TLS until just before first ↵Kim Alvefur2018-09-141-14/+21
| | | | handshake
* net.connect: Fix passing request table to new listenerKim Alvefur2018-09-261-2/+2
| | | | This could be a return value from ondetach
* net.server: Call a 'onattach' callback when replacing listenersKim Alvefur2018-09-261-0/+1
|
* net.server_epoll: Include errno in log messagesKim Alvefur2018-09-261-6/+6
|
* net.server_epoll: Factor out IP/port detection into its own methodKim Alvefur2018-09-261-5/+10
|
* net.server_epoll: Protect from errors in get{peer,sock}nameKim Alvefur2018-09-261-4/+6
|
* net.server_epoll: Watching instead of registering, seems more understandableKim Alvefur2018-09-241-2/+2
|
* net.server_epoll: Simplify minimal string representationKim Alvefur2018-09-151-1/+1
| | | | .conn might just be the FD sometimes
* net.server_epoll: Add back setflags API for compatKim Alvefur2018-09-151-0/+13
|
* net.server_epoll: Fix write signal handling in watchfd APIKim Alvefur2018-09-151-3/+3
| | | | The main loop calls :onwritable but here it was spelled :onwriteable
* net.server_epoll: Use util.pollKim Alvefur2018-05-161-69/+74
|
* net.server_epoll: Make read_size a server-wide optionKim Alvefur2018-09-131-1/+2
| | | | Can still be overriden per connection
* net.server_epoll: Rename pattern to read_sizeKim Alvefur2018-09-131-10/+10
|
* net.server_epoll: Refactor Direct TLS assumptions outwardsKim Alvefur2018-09-131-8/+17
| | | | | | | | | | The assumption that connections are "Direct TLS" when a TLS context is supplided should be broken. The goal is to make it easy to add a new API that can be given a TLS context at creation even if it should do STARTTLS. With this commit, only the exposed server_select-compatible API assumes Direct TLS when a TLS context is included.
* net.server_epoll: Factor Direct TLS handling out of connection initializationKim Alvefur2018-09-131-6/+6
| | | | | Eventually it should be possible to create a socket that has a TLS context but that does not automatically start TLS on connect.
* net.server_epoll: Remove coercion of connections to stringsKim Alvefur2018-09-131-8/+8
| | | | No longer needed since util.logger does this now
* net.server_epoll: Rename all variables holding TLS contexts for consistencyKim Alvefur2018-09-131-13/+13
|