Commit Graph

376 Commits

Author SHA1 Message Date
andrew 8ccb02f450 We don't want to close the connection on EPOLLRDHUP
We'll rely on the errors from reads and writes to close the connections
2025-08-20 14:09:39 -04:00
andrew cf692e71ef Perfetto tracing for /ok. Header parsing not complete 2025-08-20 12:19:20 -04:00
andrew 972d87b12e Organize design.md 2025-08-20 11:56:48 -04:00
andrew 0e885f1ff1 Perfetto tracing in load tester 2025-08-20 11:36:02 -04:00
andrew dac3e5dc59 Vendor perfetto dependency 2025-08-20 11:30:42 -04:00
andrew 1b09e971bc Print load tester config 2025-08-20 11:23:43 -04:00
andrew a5183c3dbf Always use ninja 2025-08-20 11:23:26 -04:00
andrew 5d5d8bc495 Add cli options to load tester 2025-08-20 11:13:13 -04:00
andrew 4b907819dc Match server's epoll usage a bit better 2025-08-20 10:57:04 -04:00
andrew cf9598a568 Remove duplicate __has_feature check 2025-08-20 10:41:54 -04:00
andrew a20b61ec56 Small tweaks to new load tester 2025-08-20 10:40:29 -04:00
andrew 339e9c6bec WIP 2025-08-20 09:32:52 -04:00
andrew 4044f0a871 Add unix socket listening mode 2025-08-19 17:57:07 -04:00
andrew 800d8cb6b0 Add TODO for enforcing max_request_size_bytes 2025-08-19 17:33:21 -04:00
andrew b7282a2f03 Add thread safety documentation 2025-08-19 17:20:36 -04:00
andrew b8d735f074 Initial http implementation 2025-08-19 17:20:18 -04:00
andrew ee32b64c02 Make empty default on_data_arrived implementation 2025-08-19 16:05:04 -04:00
andrew b017c6b209 We still want to "write" empty messages
So that the size of the messages queue can go to zero
2025-08-19 16:04:44 -04:00
andrew b843e1d5a2 Fix "YesHandler" in design.md 2025-08-19 16:04:20 -04:00
andrew 450bf6dbf1 Add Connection::reset
There was an issue where the connection deque was referring to old arena memory
2025-08-19 16:03:33 -04:00
andrew 05e22fbac2 Add batching handler and streaming handler examples 2025-08-19 15:39:10 -04:00
andrew 6b7cc74a7c Add ConnectionHandler::on_post_batch 2025-08-19 15:28:17 -04:00
andrew 33fd8bb705 Update realloc_raw docstring 2025-08-19 14:31:42 -04:00
andrew ecfb7f3307 Add on_write_progress 2025-08-19 14:23:17 -04:00
andrew c95aecfe8c Add the rest of the endpoints to design.md 2025-08-19 14:03:49 -04:00
andrew 30d22f7a18 Add server sent events design TODO 2025-08-19 14:03:35 -04:00
andrew 45172ae182 Remove http.md 2025-08-19 14:03:22 -04:00
andrew 08f3454965 Clarify ConnectionHandler documentation 2025-08-19 13:50:49 -04:00
andrew 0d688d9ce9 Optionally skip copying into connection arena for appendMessage 2025-08-19 13:44:16 -04:00
andrew 455ab749a6 Remove ProcessResult 2025-08-19 13:41:26 -04:00
andrew e832d8419c Remove accidentally checked in file 2025-08-19 13:36:22 -04:00
andrew 5bfa20643a Update design.md 2025-08-19 13:33:31 -04:00
andrew cb322bbb2b Separate Connection, ConnectionHandler, Server 2025-08-19 13:23:18 -04:00
andrew addac1b0b7 Recommended epoll/tcp options 2025-08-19 12:27:03 -04:00
andrew 499de3837a Add .clangd 2025-08-19 12:23:27 -04:00
andrew 91dcf04635 Configurable read buffer size 2025-08-19 12:20:56 -04:00
andrew 2b458747f8 Use writev 2025-08-19 12:04:13 -04:00
andrew 5dc800a088 Add Connection::arena 2025-08-19 11:51:44 -04:00
andrew 1141251002 Improve accuracy in http.md 2025-08-18 16:46:25 -04:00
andrew 3a874b0acf Add llhttp dependency 2025-08-18 16:46:06 -04:00
andrew e704c261cb Use a pipe instead of an eventfd 2025-08-18 16:35:33 -04:00
andrew 0e49025c0e Consolidate config docs in config.md, update file references 2025-08-18 16:13:08 -04:00
andrew 53fce46283 Descriptive name for thread index 2025-08-18 16:01:41 -04:00
andrew 8b18c5fde9 More error handling
Handle epoll_ctl errors by closing the connection
2025-08-18 15:59:35 -04:00
andrew 141ae823ab Improve some error handling
Handle EINTR in signal handler
Handle getListenFd errors by trying the next address
2025-08-18 15:57:03 -04:00
andrew 5bc78577c6 Add safety comments 2025-08-18 15:50:50 -04:00
andrew 368ec721d5 Full pass over src/main.cpp 2025-08-18 15:43:45 -04:00
andrew 8ef118a17d Shutdown fd 2025-08-18 15:21:45 -04:00
andrew 715941c0d3 Max connection limit 2025-08-18 14:48:01 -04:00
andrew 9f4547d9f7 Validate config 2025-08-18 14:13:54 -04:00