Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | net.server_epoll: Process all queued events from epoll before timers | Kim Alvefur | 2021-10-21 | 1 | -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 #1670 | Kim Alvefur | 2021-09-20 | 1 | -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 Alvefur | 2021-09-20 | 1 | -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 timers | Kim Alvefur | 2021-08-31 | 1 | -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.adns: Prevent empty packets from being sent on "connect" (fix #1619) | Kim Alvefur | 2021-01-12 | 1 | -0/+5 |
| | | | | Thanks Ge0rG for testing | ||||
* | net.server_epoll: Fix off-by-one in 2c559953ad41 | Kim Alvefur | 2021-01-10 | 1 | -1/+1 |
| | | | | Thanks tmolitor | ||||
* | net.server_epoll: Ensure timers can't run more than once per tick | Kim Alvefur | 2021-01-08 | 1 | -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.websocket.frames: Use C string XOR implementation | Kim Alvefur | 2020-10-14 | 1 | -23/+7 |
| | |||||
* | net.http.server: Don't send Content-Length on 1xx/204 responses, per RFC ↵ | Matthew Wild | 2020-10-13 | 1 | -1/+4 |
| | | | | (fixes #1596) | ||||
* | net.websocket.frames: Read buffer length correctly in Lua 5.1 (fix #1598) | Kim Alvefur | 2020-10-12 | 1 | -3/+3 |
| | | | | | | | COMPAT: The __len metamethod does not work with tables in Lua 5.1. Both strings and util.dbuffer now expose their length as a :len() method. | ||||
* | net.websocket.frames: Additionally return partial frame if there is one | Matthew Wild | 2020-09-29 | 1 | -1/+1 |
| | |||||
* | mod_websocket: Switch partial frame buffering to util.dbuffer | Matthew Wild | 2020-09-17 | 1 | -2/+2 |
| | | | | | This improves performance and enforces stanza size limits earlier in the pipeline. | ||||
* | net.websocket.frames: Allow all methods to work on non-string objects | Matthew Wild | 2020-09-17 | 1 | -10/+15 |
| | | | | | | | | Instead of using the string library, use methods from the passed object, which are assumed to be equivalent. This provides compatibility with objects from util.ringbuffer and util.dbuffer, for example. | ||||
* | net.http: Add feature discovery (currently just contains SNI) | Matthew Wild | 2020-09-15 | 1 | -0/+3 |
| | |||||
* | net.server: Backport client parts of SNI support from trunk (#409) | Kim Alvefur | 2020-08-17 | 4 | -16/+42 |
| | | | | | | | | | | 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.http: Add request:cancel() method | Matthew Wild | 2020-08-08 | 1 | -0/+11 |
| | | | | | | | | | | This is a new API that should be used in preference to http.destroy_request() when possible, as it ensures the callback is always called (with an error of course). APIs that have edge-cases where they don't call callbacks have, from experience, shown to be difficult to work with and often lead to unintentional leaks when the callback was expected to free up certain resources. | ||||
* | net.http: Re-expose destroy_request() function | Matthew Wild | 2020-08-08 | 1 | -0/+1 |
| | | | | | This was accidentally turned private in 647adfd8f738 as part of refactoring for Lua 5.2+. | ||||
* | net.resolvers.basic: Default conn_type to 'tcp' consistently if unspecified ↵ | Matthew Wild | 2020-07-10 | 1 | -1/+2 |
| | | | | | | (thanks marc0s) Fixes a traceback when passed an IP address with no conn_type. | ||||
* | net.http: Fix traceback on invalid URL passed to request() | Matthew Wild | 2020-07-07 | 1 | -2/+3 |
| | |||||
* | net.http.server: Fix reporting of missing Host header | Kim Alvefur | 2020-06-23 | 1 | -1/+2 |
| | | | | | The "Missing or invalid 'Host' header" case was dead code previously because `host` was always at least an empty string. | ||||
* | net.http.server: Strip port from Host header in IPv6 friendly way (fix #1302) | Kim Alvefur | 2020-06-23 | 1 | -1/+1 |
| | | | | | E.g. given `[::1]:5280` it would previously result in only `[` instead of the correct `[::1]` | ||||
* | net.server_epoll: Fix indentation | Kim Alvefur | 2020-03-11 | 1 | -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.resolvers.basic: Normalise IP literals, ensures net.server is happy | Kim Alvefur | 2019-11-24 | 1 | -0/+2 |
| | |||||
* | net.resolvers.basic: Fix resolution of IPv6 literals (in brackets) (fixes #1459) | Kim Alvefur | 2019-11-24 | 1 | -0/+3 |
| | |||||
* | net.resolvers.basic: Move IP literal check to constructor | Kim Alvefur | 2019-11-24 | 1 | -11/+14 |
| | | | | | This is to prepare for fixing #1459. An IPv6 literal in [ ] brackets does not pass IDNA and resolving it fails there. | ||||
* | net.resolvers: Fix traceback from hostname failing IDNA | Kim Alvefur | 2019-11-08 | 2 | -0/+2 |
| | | | | Related to #1426 | ||||
* | net.resolvers: Abort on hostnames not passing IDNA validation | Kim Alvefur | 2019-11-02 | 2 | -0/+10 |
| | | | | | | Prevents error on trying to use nil. Needs better error reporting in the future. | ||||
* | net.resolvers: Apply IDNA conversion to ascii for DNS lookups (fixes #1426) | Kim Alvefur | 2019-11-02 | 2 | -2/+4 |
| | |||||
* | net.server_epoll: Backport timer optimization 6c2370f17027 from trunk (see ↵ | Kim Alvefur | 2019-07-08 | 1 | -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 Alvefur | 2019-05-04 | 1 | -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.dns: Close resolv.conf handle when done (fixes #1342) | Kim Alvefur | 2019-04-13 | 1 | -0/+1 |
| | |||||
* | net.server_epoll: Skip delayed continuation read on paused connections | Kim Alvefur | 2019-03-28 | 1 | -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 Alvefur | 2019-03-28 | 1 | -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 Alvefur | 2019-02-09 | 1 | -3/+3 |
| | | | | | | #1319) This is to match server_event, see 430797a8fc81 | ||||
* | net.server_epoll: Use send_timeout for write timout like other ↵ | Kim Alvefur | 2019-02-07 | 1 | -2/+2 |
| | | | | implementations (fixes #1316) | ||||
* | server_epoll: Add comments describing config options | Kim Alvefur | 2018-11-30 | 1 | -0/+15 |
| | |||||
* | net.server_epoll: Remove unused config option | Kim Alvefur | 2018-11-30 | 1 | -1/+0 |
| | |||||
* | server_epoll: Increase write timeout | Kim Alvefur | 2018-11-30 | 1 | -1/+1 |
| | | | | 7 may be too low for some slow machines and/or networks | ||||
* | net.server_select: Fix IP validation to use correct variable (thanks quest) | Kim Alvefur | 2018-11-17 | 1 | -1/+1 |
| | | | | Copy-paste mistake most likely. Not caught because server_select is ignored by luacheck. | ||||
* | net.http.server: Move event formation to avoid traceback on missing Host header | Matthew Wild | 2018-11-13 | 1 | -1/+1 |
| | |||||
* | net.http: Manually merge settings (fixes #1231) | Kim Alvefur | 2018-11-09 | 1 | -2/+6 |
| | | | | Metatable table indexing is done raw, so metatables can't be chained | ||||
* | net.server_epoll: Shuffle variables earlier to improve readability | Kim Alvefur | 2018-10-27 | 1 | -1/+1 |
| | |||||
* | Many things: switch from hacky multi-arg xpcall implementations to a ↵ | Matthew Wild | 2018-10-26 | 2 | -9/+6 |
| | | | | standard util.xpcall | ||||
* | net.server_epoll: Special handling of signal interrupts | Kim Alvefur | 2018-10-12 | 1 | -1/+1 |
| | |||||
* | net.server_epoll: Ignore ENOENT when deregitering socket | Kim Alvefur | 2018-10-12 | 1 | -1/+2 |
| | | | | It should not really happen | ||||
* | net.server_epoll: Graceful handling of registering already added socket | Kim Alvefur | 2018-10-12 | 1 | -1/+8 |
| | |||||
* | net.server: Swich method for connecting sockets with remotes | Kim Alvefur | 2018-10-12 | 3 | -3/+3 |
| | | | | | | | 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 setup | Kim Alvefur | 2018-10-12 | 1 | -2/+4 |
| | |||||
* | net.server_epoll: Add support for the conn_type argument to addclient | Kim Alvefur | 2018-10-12 | 1 | -8/+16 |
| | |||||
* | net.resolvers.basic: Suffix IPv4 TCP socket types with '4' to match eg 'tcp6' | Kim Alvefur | 2018-10-12 | 1 | -2/+2 |
| |