Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 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 |
| | |||||
* | net.server: Remove socket constructor fallback | Kim Alvefur | 2018-10-12 | 2 | -2/+2 |
| | | | | Should no longer be needed | ||||
* | net.server_epoll: Assert successful creation of util.poll handle | Kim Alvefur | 2018-10-11 | 1 | -1/+1 |
| | |||||
* | net.server_epoll: Update copyright year | Kim Alvefur | 2018-10-11 | 1 | -1/+1 |
| | |||||
* | net.server: Require IP address as argument to addclient (no DNS names) | Kim Alvefur | 2018-10-11 | 3 | -19/+34 |
| | | | | The net.connect API should be used to resolve DNS names first | ||||
* | net.server_epoll: Log error number from wait() | Kim Alvefur | 2018-10-07 | 1 | -1/+1 |
| | |||||
* | net.server_epoll: Pass error number to logging | Kim Alvefur | 2018-10-06 | 1 | -1/+1 |
| | | | | Why do we ignore unused secondaries? | ||||
* | net.server_epoll: Fix luacheck annotation | Kim Alvefur | 2018-10-06 | 1 | -1/+1 |
| | |||||
* | net.server_epoll: Make :set_send a noop, should fix net.adns | Kim Alvefur | 2018-10-06 | 1 | -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 clients | Kim Alvefur | 2018-09-14 | 1 | -1/+2 |
| | |||||
* | net.server_epoll: Catch errors from luasec.wrap | Kim Alvefur | 2018-09-14 | 1 | -1/+5 |
| | | | | It throws if given an invalid TLS context | ||||
* | net.server_epoll: Delay wrapping sockets in TLS until just before first ↵ | Kim Alvefur | 2018-09-14 | 1 | -14/+21 |
| | | | | handshake | ||||
* | net.resolvers.service: Sort SRV records in correct direction | Kim Alvefur | 2018-09-30 | 1 | -1/+1 |
| |