Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | net.server_epoll: Avoid concatenating buffer with single item | Kim Alvefur | 2019-12-28 | 1 | -1/+1 |
| | | | | | | | | | | | | | | Saves creating a string that'll be identical to buffer[1] anyways, as well as a C function call. Depending on Lua version and length of the string, this could be reusing an interned string, but a longer one would probably be duplicated for no reason. Having exactly one item in the buffer seems like it would be fairly common, but I have not done an extensive study. If opportunistic writes are enabled then it will be even more likely. This special case could be optimized like this in table.concat but it does not look like it is. | ||||
* | net.server_event: Silence luacheck warnings | Kim Alvefur | 2019-12-23 | 1 | -0/+2 |
| | |||||
* | net.server_epoll: Remove an unused variable [luacheck] | Kim Alvefur | 2019-12-23 | 1 | -1/+1 |
| | |||||
* | net.http.parser: Silence warning about unused variable [luacheck] | Kim Alvefur | 2019-12-23 | 1 | -1/+2 |
| | |||||
* | util.error: Move default for numeric error code to net.http.server | Kim Alvefur | 2019-12-14 | 1 | -1/+1 |
| | | | | | | Stanza errors can also have numbers but these are a legacy thing and rarely used, except in MUC. HTTP errors on the other hand always have a number. | ||||
* | net.server_epoll: Use monotonic time for scheduling | Kim Alvefur | 2019-12-08 | 1 | -9/+11 |
| | | | | Timer API of passing wallclock time remains | ||||
* | net.server_epoll: Change timer rescheduling method to match util.timer | Kim Alvefur | 2019-12-08 | 1 | -2/+3 |
| | | | | | Relative to current time instead of absolute time, in preparation for switching to monotonic time. | ||||
* | net.server_epoll: Remove unused function for adding timer at absolute time | Kim Alvefur | 2019-12-08 | 1 | -8/+3 |
| | | | | This won't make sense if we switch to monotonic time | ||||
* | net.server_epoll: Add debug logging for delayed reading | Kim Alvefur | 2019-12-07 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | | In :onreadable, if there is still buffered incoming data after reading from the socket (as indicated by the :dirty method, usually because LuaSocket has an 8k buffer that's full but it read a smaller amount), another attempt to read is scheduled via this :pausefor method. This is also called from some other places where it would be pointless to read because there shouldn't be any data. In the delayed read case, this should report that the socket is "dirty". If it reports that the socket is "clean" then the question is where the buffer contents went? If this doesn't get logged after the scheduled time (0.000001s by default) then this would suggests a problem with timer or scheduling. | ||||
* | net.connect: Mention RFC 6724 regression | Kim Alvefur | 2019-12-07 | 2 | -0/+2 |
| | | | | | Default Address Selection algorithm is not applied, resulting in a strong bias towards IPv4. | ||||
* | net.connect: Add some TODOs and FIXMEs | Kim Alvefur | 2019-12-07 | 3 | -1/+10 |
| | | | | And mention issue numbers: #1246, #1428 and #1429 | ||||
* | net.server_select: Remove prefix added to TLS handshaker errors | Kim Alvefur | 2019-12-01 | 1 | -1/+1 |
| | | | | For consistency. None of the other implementations do this. | ||||
* | net.http: Set ALPN on requests | Kim Alvefur | 2019-11-29 | 1 | -1/+1 |
| | | | | | | Shouldn't hurt. Revert if it turns out it does. Supported in LuaSec 0.8. Should be ignored otherwise. | ||||
* | net.websocket: Fix traceback in case of ondisconnect being called twice | Matthew Wild | 2019-11-26 | 1 | -0/+1 |
| | | | | | We want to figure out what situations the double ondisconnect happens in, and aim to fix the root cause in the future. | ||||
* | net.connect: Add some TODO comments | Kim Alvefur | 2019-11-26 | 1 | -0/+4 |
| | |||||
* | Merge 0.11->trunk | Kim Alvefur | 2019-11-24 | 1 | -0/+2 |
|\ | |||||
| * | net.resolvers.basic: Normalise IP literals, ensures net.server is happy | Kim Alvefur | 2019-11-24 | 1 | -0/+2 |
| | | |||||
* | | net.resolvers.service: Pass IP literals directly to basic resolver | Kim Alvefur | 2019-11-24 | 1 | -0/+9 |
| | | | | | | | | | | | | IP literals will not work with SRV records anyways. Fixes s2s with IP literals. | ||||
* | | Merge 0.11->trunk | Kim Alvefur | 2019-11-24 | 1 | -11/+17 |
|\| | |||||
| * | 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.server_epoll: Save log tag in a field on FD watchers too | Kim Alvefur | 2019-11-17 | 1 | -2/+4 |
| | | | | | | | | As with 0e1701197722 | ||||
* | | Back out c8aa66595072: Extra changes accidentally included | Kim Alvefur | 2019-11-17 | 1 | -5/+3 |
| | | |||||
* | | net.server_epoll: Save log tag in a field on FD watchers too | Kim Alvefur | 2019-11-17 | 1 | -3/+5 |
| | | | | | | | | As with 0e1701197722 | ||||
* | | net.server_epoll: Improve read timeout debug messages | Kim Alvefur | 2019-10-19 | 1 | -2/+2 |
| | | |||||
* | | net.server_epoll: Clarify a debug message | Kim Alvefur | 2019-10-19 | 1 | -1/+1 |
| | | | | | | | | Writing what? The data that's been buffered for writing | ||||
* | | server_event: Remove duplicated code (thanks waqas) | Kim Alvefur | 2019-11-13 | 1 | -4/+0 |
| | | | | | | | | | | readcallback() calls onreadtimeout() and runs the exact same code if onreadtimeout() doesn't return true, which it doesn't do. | ||||
* | | Merge 0.11->trunk | Kim Alvefur | 2019-11-08 | 2 | -0/+2 |
|\| | |||||
| * | net.resolvers: Fix traceback from hostname failing IDNA | Kim Alvefur | 2019-11-08 | 2 | -0/+2 |
| | | | | | | | | Related to #1426 | ||||
* | | net.http.server: Treat promise rejection without value as a HTTP 500 error | Kim Alvefur | 2019-11-05 | 1 | -1/+1 |
| | | |||||
* | | net.http.server: Handle promises from http handlers | Kim Alvefur | 2019-11-01 | 1 | -0/+8 |
| | | |||||
* | | net.http.server: Handle util.error objects from http handlers | Kim Alvefur | 2019-11-01 | 1 | -0/+3 |
| | | |||||
* | | net.http.server: Tail call because tail call! | Kim Alvefur | 2019-11-01 | 1 | -1/+1 |
| | | |||||
* | | net.http.server: Factor out handling of event response for easier reuse | Kim Alvefur | 2019-11-01 | 1 | -31/+34 |
| | | |||||
* | | Merge 0.11->trunk | Kim Alvefur | 2019-11-02 | 2 | -2/+14 |
|\| | |||||
| * | 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.http.codes: Avoid implicit number -> string coercion | Kim Alvefur | 2019-11-01 | 1 | -1/+1 |
| | | |||||
* | | net.server_epoll: Save IP and port from connection creation call | Kim Alvefur | 2019-10-12 | 1 | -0/+4 |
| | | | | | | | | Might come out of :getpeername different later but at least it's something. | ||||
* | | server_epoll: Log full string represestation when connected | Kim Alvefur | 2019-10-12 | 1 | -1/+1 |
| | | | | | | | | Since they may have been unknown when the connection was created. | ||||
* | | net.server_epoll: Handle getpeer/sockname returning a normal error | Kim Alvefur | 2019-10-12 | 1 | -2/+2 |
| | | | | | | | | | | These will sometimes return nil, "Transport not connected" but not throw a hard error. This shouldn't be treated as success. | ||||
* | | net.server_epoll: Fix to get remote IP on direct TLS connections | Kim Alvefur | 2019-10-12 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | | A Direct TLS connection (eg HTTPS) gets turned into a LuaSec handle before the :updatenames call done in the :connect method. LuaSec does not expose the :getpeername and :getsockname methods, so the addresses remain obscured, making debugging trickier since the actual IP addrerss connected to does not show up. | ||||
* | | net.server_epoll: Move a log message to improve ordering | Kim Alvefur | 2019-10-12 | 1 | -1/+1 |
| | | | | | | | | It was weird that it said "Prepared to start TLS" before "Client .. created" | ||||
* | | net.http.files: Explicitly convert number to string, avoiding implicit coercion | Kim Alvefur | 2019-10-12 | 1 | -1/+1 |
| | | |||||
* | | net.http.server: Explicitly convert number to string, avoiding implicit coercion | Kim Alvefur | 2019-10-12 | 1 | -1/+1 |
| | | |||||
* | | net.http.server: Re-fire unhandled HEAD requsts as GET events (fixes #1447) | Kim Alvefur | 2019-10-12 | 1 | -0/+11 |
| | | | | | | | | | | | | BC: This overloads the GET event. Previous commit ensures HEAD requests are sent without a body. | ||||
* | | net.http.server: Ensure HEAD requests are sent with empty body | Kim Alvefur | 2019-10-12 | 1 | -0/+16 |
| | | |||||
* | | net.server_epoll: Guard against nil return from TLS info method | Kim Alvefur | 2019-10-06 | 1 | -2/+2 |
| | | |||||
* | | net.server_epoll: Log TLS version and cipher for all completed handshakes | Kim Alvefur | 2019-10-06 | 1 | -1/+6 |
| | | | | | | | | | | The similar logging in mod_c2s and mod_s2s does not cover all connections, like HTTPS or other Direct TLS ports. |