Mercurial > hg > nginx-quic
changeset 8597:486c6a9be111 quic
QUIC: store QUIC connection fd in stream fake connection.
Previously it had -1 as fd. This fixes proxying, which relies on downstream
connection having a real fd. Also, this reduces diff to the default branch for
ngx_close_connection().
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Mon, 06 Sep 2021 16:59:00 +0300 |
parents | 1f7f98638dc2 |
children | 4ca8035c19a4 |
files | src/core/ngx_connection.c src/event/quic/ngx_event_quic_streams.c |
diffstat | 2 files changed, 8 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/core/ngx_connection.c +++ b/src/core/ngx_connection.c @@ -1185,6 +1185,11 @@ ngx_close_connection(ngx_connection_t *c ngx_uint_t log_error, level; ngx_socket_t fd; + if (c->fd == (ngx_socket_t) -1) { + ngx_log_error(NGX_LOG_ALERT, c->log, 0, "connection already closed"); + return; + } + if (c->read->timer_set) { ngx_del_timer(c->read); } @@ -1193,7 +1198,7 @@ ngx_close_connection(ngx_connection_t *c ngx_del_timer(c->write); } - if (!c->shared && c->fd != (ngx_socket_t) -1) { + if (!c->shared) { if (ngx_del_conn) { ngx_del_conn(c, NGX_CLOSE_EVENT); @@ -1225,11 +1230,6 @@ ngx_close_connection(ngx_connection_t *c ngx_free_connection(c); - if (c->fd == (ngx_socket_t) -1) { - ngx_log_debug0(NGX_LOG_DEBUG_CORE, c->log, 0, "connection has no fd"); - return; - } - fd = c->fd; c->fd = (ngx_socket_t) -1;