Mercurial > hg > nginx
comparison src/http/ngx_http_request.h @ 9161:4939fd04737f
HTTP/3: postponed session creation to init() callback.
Now the session object is assigned to c->data while ngx_http_connection_t
object is referenced by its http_connection field, similar to
ngx_http_v2_connection_t and ngx_http_request_t.
The change allows to eliminate v3_session field from ngx_http_connection_t.
The field was under NGX_HTTP_V3 macro, which was a source of binary
compatibility problems when nginx/module is build with/without HTTP/3 support.
Postponing is essential since c->data should retain the reference to
ngx_http_connection_t object throughout QUIC handshake, because SSL callbacks
ngx_http_ssl_servername() and ngx_http_ssl_alpn_select() rely on this.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Thu, 14 Sep 2023 14:13:43 +0400 |
parents | 8d0753760546 |
children | dacad3a9c7b8 |
comparison
equal
deleted
inserted
replaced
9160:dd5fd5719027 | 9161:4939fd04737f |
---|---|
320 #if (NGX_HTTP_SSL || NGX_COMPAT) | 320 #if (NGX_HTTP_SSL || NGX_COMPAT) |
321 ngx_str_t *ssl_servername; | 321 ngx_str_t *ssl_servername; |
322 #if (NGX_PCRE) | 322 #if (NGX_PCRE) |
323 ngx_http_regex_t *ssl_servername_regex; | 323 ngx_http_regex_t *ssl_servername_regex; |
324 #endif | 324 #endif |
325 #endif | |
326 | |
327 #if (NGX_HTTP_V3 || NGX_COMPAT) | |
328 ngx_http_v3_session_t *v3_session; | |
329 #endif | 325 #endif |
330 | 326 |
331 ngx_chain_t *busy; | 327 ngx_chain_t *busy; |
332 ngx_int_t nbusy; | 328 ngx_int_t nbusy; |
333 | 329 |