mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-09 00:00:04 +01:00
cgi: fix stdout close to http close
On h1, cgi stdout close doesn't prompt the http close, instead it times out. Fix that so we also close on h1, and make the close action itself on http timeout less drastic. As it was, GnuTLS actually marks the close as a fatal TLS error.
This commit is contained in:
parent
e0a6979082
commit
9123ca6bef
2 changed files with 12 additions and 8 deletions
|
@ -272,14 +272,16 @@ __lws_service_timeout_check(struct lws *wsi, time_t sec)
|
|||
wsi->pending_timeout);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Since he failed a timeout, he already had a chance to do
|
||||
* something and was unable to... that includes situations like
|
||||
* half closed connections. So process this "failed timeout"
|
||||
* close as a violent death and don't try to do protocol
|
||||
* cleanup like flush partials.
|
||||
*/
|
||||
wsi->socket_is_permanently_unusable = 1;
|
||||
/* cgi timeout */
|
||||
if (wsi->pending_timeout != PENDING_TIMEOUT_HTTP_KEEPALIVE_IDLE)
|
||||
/*
|
||||
* Since he failed a timeout, he already had a chance to
|
||||
* do something and was unable to... that includes
|
||||
* situations like half closed connections. So process
|
||||
* this "failed timeout" close as a violent death and
|
||||
* don't try to do protocol cleanup like flush partials.
|
||||
*/
|
||||
wsi->socket_is_permanently_unusable = 1;
|
||||
if (lwsi_state(wsi) == LRS_WAITING_SSL && wsi->protocol)
|
||||
wsi->protocol->callback(wsi,
|
||||
LWS_CALLBACK_CLIENT_CONNECTION_ERROR,
|
||||
|
|
|
@ -952,6 +952,8 @@ agin:
|
|||
if (wsi->http2_substream)
|
||||
m = lws_write(wsi, (unsigned char *)start, 0,
|
||||
LWS_WRITE_HTTP_FINAL);
|
||||
else
|
||||
return -1;
|
||||
return 1;
|
||||
}
|
||||
wsi->cgi_stdout_zero_length = 1;
|
||||
|
|
Loading…
Add table
Reference in a new issue