summaryrefslogtreecommitdiffhomepage
path: root/src/http/v3
diff options
context:
space:
mode:
authorRoman Arutyunyan <arut@nginx.com>2022-01-31 09:16:47 +0300
committerRoman Arutyunyan <arut@nginx.com>2022-01-31 09:16:47 +0300
commitacb585518d868a5051c1caa85add006d975751f5 (patch)
treee4edefa822b4851a0a39aaefe42fc2daa2e6de1a /src/http/v3
parentf87630ab49d053d35829e8c2e2160e66495f3a2d (diff)
downloadnginx-acb585518d868a5051c1caa85add006d975751f5.tar.gz
nginx-acb585518d868a5051c1caa85add006d975751f5.tar.bz2
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.
Diffstat (limited to 'src/http/v3')
-rw-r--r--src/http/v3/ngx_http_v3.c4
-rw-r--r--src/http/v3/ngx_http_v3.h9
2 files changed, 8 insertions, 5 deletions
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 {