mirror of
https://github.com/nginx/nginx.git
synced 2024-11-21 16:28:40 +00:00
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().
This commit is contained in:
parent
9985ab86bf
commit
465362e066
@ -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;
|
||||
|
||||
|
@ -440,6 +440,8 @@ ngx_quic_create_stream(ngx_connection_t *c, uint64_t id)
|
||||
qs->connection = sc;
|
||||
|
||||
sc->quic = qs;
|
||||
sc->fd = c->fd;
|
||||
sc->shared = 1;
|
||||
sc->type = SOCK_STREAM;
|
||||
sc->pool = pool;
|
||||
sc->ssl = c->ssl;
|
||||
|
Loading…
Reference in New Issue
Block a user