Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | net.server_epoll: Add setting for turning off callback protections | Kim Alvefur | 2020-06-30 | 1 | -0/+6 |
| | | | | | Might improve (CPU) performance at the risk of triggering top level errors. | ||||
* | net.server_epoll: Allow setting a custom error handler for listener | Kim Alvefur | 2020-06-30 | 1 | -1/+2 |
| | | | | This lets plugins handle errors in some custom way, should they wish to. | ||||
* | net.server_epoll: ... and include a traceback | Kim Alvefur | 2020-06-30 | 1 | -1/+1 |
| | |||||
* | net.server_epoll: Report errors in timers | Kim Alvefur | 2020-06-30 | 1 | -0/+2 |
| | |||||
* | net.server_epoll: Expose way to turn monotonic time into wall clock time | Kim Alvefur | 2020-06-30 | 1 | -0/+3 |
| | |||||
* | net.server_epoll: Optimize away table allocation for timer objects | Kim Alvefur | 2020-06-29 | 1 | -15/+21 |
| | |||||
* | net.server_epoll: Remove unused time field from timer objects | Kim Alvefur | 2020-06-29 | 1 | -6/+3 |
| | | | | Unused since the move to util.indexedbheap in c8c3f2eba898 | ||||
* | net.server_epoll: Signal API-compatibilty with util.timer | Kim Alvefur | 2020-06-29 | 1 | -0/+6 |
| | | | | | Reduces the overhead of having both util.timer and the timer handling here, since they are very similar and now API-compatible. | ||||
* | net.server_epoll: Make API-compatible with util.timer | Kim Alvefur | 2020-06-29 | 1 | -3/+3 |
| | |||||
* | net.server_epoll: Add way to start accepting clients on an arbitrary server ↵ | Kim Alvefur | 2020-06-01 | 1 | -4/+9 |
| | | | | | | socket This adds an escape hatch where things like UNIX sockets can be added. | ||||
* | net.server_epoll: Handle missing ports from getsock/peername (as in the case ↵ | Matthew Wild | 2020-06-01 | 1 | -2/+2 |
| | | | | of unix sockets) | ||||
* | net.server_epoll: Fix typo in internal method name | Kim Alvefur | 2020-05-22 | 1 | -5/+5 |
| | |||||
* | net.server_epoll: Log some noise before TLS handshake step | Kim Alvefur | 2020-05-22 | 1 | -0/+1 |
| | | | | | This would help pinpoint if a crash happens during the handshake, which has occurred a few times, e.g. like https://github.com/brunoos/luasec/issues/75 | ||||
* | net.server_epoll: Reduce log level of TLS handshake errors to debug | Kim Alvefur | 2020-02-15 | 1 | -1/+1 |
| | | | | | | | These are triggered all the time by random HTTPS connections, so they are mostly just useless noise. When you actually do need them, you probably have debug logging enabled too, since these messages are fairly useless without more context. | ||||
* | net.server_epoll: Different error to distinguish connection timeout | Kim Alvefur | 2020-02-01 | 1 | -1/+2 |
| | | | | This mirrors what server_event does. | ||||
* | net.server_epoll: Log error about missing *all* callbacks at 'error' level | Kim Alvefur | 2020-01-12 | 1 | -1/+1 |
| | |||||
* | net.server_epoll: Log errors caught in listeners on 'error' level | Kim Alvefur | 2020-01-12 | 1 | -1/+1 |
| | |||||
* | net.server_epoll: Add option for reducing debug logging | Kim Alvefur | 2020-01-12 | 1 | -14/+25 |
| | | | | | | | Sometimes all these things just drown out the logs you are interested in with low-level socket noise. Enabled since it's still new and experimental. | ||||
* | net.server_epoll: Collect full traceback from errors in listeners | Kim Alvefur | 2020-01-05 | 1 | -1/+3 |
| | |||||
* | 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_epoll: Remove an unused variable [luacheck] | Kim Alvefur | 2019-12-23 | 1 | -1/+1 |
| | |||||
* | 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.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 | ||||
* | 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.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. | ||||
* | net.server_epoll: Log size of partial writes (debug) | Kim Alvefur | 2019-10-05 | 1 | -0/+1 |
| | |||||
* | net.server_epoll: Return early when attepting to set write lock state to ↵ | Kim Alvefur | 2019-10-05 | 1 | -0/+6 |
| | | | | | | current state Reduces needless duplication of work and log messages.. | ||||
* | net.server_epoll: Correct indentation | Kim Alvefur | 2019-09-29 | 1 | -2/+2 |
| | |||||
* | net.server_epoll: Ignore unused self argument [luacheck] | Kim Alvefur | 2019-09-29 | 1 | -1/+1 |
| | |||||
* | net.server_epoll: Fix link function to not replace listeners | Kim Alvefur | 2019-09-29 | 1 | -9/+5 |
| | | | | | | | | mod_proxy65 calls link twice, once for each direction. This would overwrite the listeners with one that has the previous listeners as metatable.__index, but none of the others. This takes advantage of 94c584d67533 to improve this. | ||||
* | net.server_epoll: Handle read size argument to link | Kim Alvefur | 2019-09-29 | 1 | -1/+2 |
| | |||||
* | net.server_epoll: Add some timeout related logging | Kim Alvefur | 2019-09-29 | 1 | -0/+3 |
| | |||||
* | net.server_epoll: Add debug logging for various connection events | Kim Alvefur | 2019-09-29 | 1 | -0/+6 |
| | |||||
* | net.server_epoll: Make log tag accessible as a field | Kim Alvefur | 2019-09-29 | 1 | -1/+3 |
| | | | | To allow referencing connections by id instead of tostring form | ||||
* | net.server_epoll: Make it easy to override handler for incoming data | Kim Alvefur | 2019-09-29 | 1 | -2/+7 |
| | |||||
* | net.server: Handle server name (SNI) as extra argument | Kim Alvefur | 2019-09-01 | 1 | -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 connections | Kim Alvefur | 2019-09-01 | 1 | -5/+6 |
| | | | | | This lets code attach some extra data to be attached to client connections. | ||||
* | net.server_epoll: Add support for opportunistic writes | Kim Alvefur | 2019-08-28 | 1 | -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. |