mirror of
https://github.com/nginx/nginx.git
synced 2024-11-24 04:49:01 +08:00
HTTP/2: avoid sending output queue if there's nothing to send.
Particularly this fixes alerts on OS X and NetBSD systems when HTTP/2 is configured over plain TCP sockets. On these systems calling writev() with no data leads to EINVAL errors being logged as "writev() failed (22: Invalid argument) while processing HTTP/2 connection".
This commit is contained in:
parent
b034effaf5
commit
6ebe94522a
@ -410,6 +410,16 @@ ngx_http_v2_write_handler(ngx_event_t *wev)
|
||||
|
||||
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c->log, 0, "http2 write handler");
|
||||
|
||||
if (h2c->last_out == NULL && !c->buffered) {
|
||||
|
||||
if (wev->timer_set) {
|
||||
ngx_del_timer(wev);
|
||||
}
|
||||
|
||||
ngx_http_v2_handle_connection(h2c);
|
||||
return;
|
||||
}
|
||||
|
||||
h2c->blocked = 1;
|
||||
|
||||
rc = ngx_http_v2_send_output_queue(h2c);
|
||||
|
Loading…
Reference in New Issue
Block a user