-
Nils Goroll authored
Previously, we only checked `v1l->deadline` (which gets initialized from the `send_timeout` session attribute or parameter) only for short writes, so for successful "dripping" http1 writes (streaming from a backend busy object with small chunks), we did not respect the timeout. This patch restructures `V1L_Flush()` to always check the deadline before a write by turning a `while() { ... }` into a `do { ... } while` with the same continuation criteria: `while (i != v1l->liov)` is turned into `if (i == v1l->liov) break;` and `while (i > 0 || errno == EWOULDBLOCK)` is kept to retry short writes. This also reduces the `writev()` call sites to one. Fixes #3189
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
cache_http1.h | ||
cache_http1_deliver.c | ||
cache_http1_fetch.c | ||
cache_http1_fsm.c | ||
cache_http1_line.c | ||
cache_http1_pipe.c | ||
cache_http1_proto.c | ||
cache_http1_vfp.c |