mirror of
https://github.com/yhirose/cpp-httplib.git
synced 2026-10-23 11:54:42 +00:00
Bound how much of an unread request body the server skips
After answering, with a status below 400, a request whose body the handler left unread, the server read past the body to reuse the connection up to the payload limit (100MB by default), with only each read bounded by the read timeout, so a slow sender could hold a worker for a long time. It now skips at most CPPHTTPLIB_UNREAD_PAYLOAD_MAX_LENGTH (256KB, as Go's net/http does) within the read timeout as a whole, and closes the connection otherwise. An error response already closed the connection.
This commit is contained in:
1 parent
5db950e1e1
commit
70bed02bc9
3 files changed
+66
-5
No files matched your search
@@ -936,7 +936,7 @@ svr.set_read_timeout(std::chrono::seconds(5));
|
||||
svr.set_keep_alive_timeout(std::chrono::seconds(10));
|
||||
```
|
||||
|
||||
The read timeout bounds the request line and headers as a whole, and each read of a request body.
|
||||
The read timeout bounds the request line and headers as a whole, and each read of a request body. An error response closes the connection. Any other response to a request whose body was left unread, such as a redirect from a pre-routing handler, keeps the connection only when the rest of the body is at most `CPPHTTPLIB_UNREAD_PAYLOAD_MAX_LENGTH` (256KB, `0` for no limit) and arrives within the read timeout, since the server has to read past it first.
|
||||
|
||||
### Set maximum payload length for reading a request body
|
||||
|
||||
|
||||
Reference in new issue
Block a user