From acb585518d868a5051c1caa85add006d975751f5 Mon Sep 17 00:00:00 2001 From: Roman Arutyunyan Date: Mon, 31 Jan 2022 09:16:47 +0300 Subject: QUIC: allowed main QUIC connection for some operations. Operations like ngx_quic_open_stream(), ngx_http_quic_get_connection(), ngx_http_v3_finalize_connection(), ngx_http_v3_shutdown_connection() used to receive a QUIC stream connection. Now they can receive the main QUIC connection as well. This is useful when calling them from a stream context. --- src/http/v3/ngx_http_v3.c | 4 ++-- src/http/v3/ngx_http_v3.h | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'src/http') diff --git a/src/http/v3/ngx_http_v3.c b/src/http/v3/ngx_http_v3.c index 97d8a5e34..29b07e025 100644 --- a/src/http/v3/ngx_http_v3.c +++ b/src/http/v3/ngx_http_v3.c @@ -78,8 +78,8 @@ ngx_http_v3_keepalive_handler(ngx_event_t *ev) ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c->log, 0, "http3 keepalive handler"); - ngx_quic_finalize_connection(c, NGX_HTTP_V3_ERR_NO_ERROR, - "keepalive timeout"); + ngx_http_v3_finalize_connection(c, NGX_HTTP_V3_ERR_NO_ERROR, + "keepalive timeout"); } diff --git a/src/http/v3/ngx_http_v3.h b/src/http/v3/ngx_http_v3.h index ea78ac1f3..b54d9aee0 100644 --- a/src/http/v3/ngx_http_v3.h +++ b/src/http/v3/ngx_http_v3.h @@ -78,7 +78,8 @@ #define ngx_http_quic_get_connection(c) \ - ((ngx_http_connection_t *) (c)->quic->parent->data) + ((ngx_http_connection_t *) ((c)->quic ? (c)->quic->parent->data \ + : (c)->data)) #define ngx_http_v3_get_session(c) ngx_http_quic_get_connection(c)->v3_session @@ -91,10 +92,12 @@ module) #define ngx_http_v3_finalize_connection(c, code, reason) \ - ngx_quic_finalize_connection(c->quic->parent, code, reason) + ngx_quic_finalize_connection((c)->quic ? (c)->quic->parent : (c), \ + code, reason) #define ngx_http_v3_shutdown_connection(c, code, reason) \ - ngx_quic_shutdown_connection(c->quic->parent, code, reason) + ngx_quic_shutdown_connection((c)->quic ? (c)->quic->parent : (c), \ + code, reason) typedef struct { -- cgit