ah: reuse at end of transaction has no timeout
If we complete a transaction but end up keeping the ah, we must force a timeout on it. Otherwise a bad bot could keep the socket open and exhaust the ah pool.
This commit is contained in:
parent
dc4323f837
commit
e99d725e76
1 changed files with 10 additions and 1 deletions
11
lib/server.c
11
lib/server.c
|
@ -1744,8 +1744,17 @@ lws_http_transaction_completed(struct lws *wsi)
|
|||
if (!wsi->more_rx_waiting) {
|
||||
wsi->u.hdr.ah->rxpos = wsi->u.hdr.ah->rxlen;
|
||||
lws_header_table_detach(wsi, 1);
|
||||
} else
|
||||
} else {
|
||||
lws_header_table_reset(wsi, 1);
|
||||
/*
|
||||
* If we kept the ah, we should restrict the amount
|
||||
* of time we are willing to keep it. Otherwise it
|
||||
* will be bound the whole time the connection remains
|
||||
* open.
|
||||
*/
|
||||
lws_set_timeout(wsi, PENDING_TIMEOUT_HTTP_KEEPALIVE_IDLE,
|
||||
wsi->vhost->keepalive_timeout);
|
||||
}
|
||||
}
|
||||
|
||||
/* If we're (re)starting on headers, need other implied init */
|
||||
|
|
Loading…
Add table
Reference in a new issue