summaryrefslogtreecommitdiffhomepage
path: root/src/http/ngx_http.h (follow)
AgeCommit message (Collapse)AuthorFilesLines
2025-06-19Upstream: early hints support.Roman Arutyunyan1-0/+2
The change implements processing upstream early hints response in ngx_http_proxy_module and ngx_http_grpc_module. A new directive "early_hints" enables sending early hints to the client. By default, sending early hints is disabled. Example: map $http_sec_fetch_mode $early_hints { navigate $http2$http3; } early_hints $early_hints; proxy_pass http://example.com;
2024-09-13Proxy: proxy_pass_trailers directive.Sergey Kandaurov1-1/+1
The directive allows to pass upstream response trailers to client.
2022-06-22Merged with the default branch.Sergey Kandaurov1-4/+4
2022-05-30Reworked multi headers to use linked lists.Maxim Dounin1-4/+4
Multi headers are now using linked lists instead of arrays. Notably, the following fields were changed: r->headers_in.cookies (renamed to r->headers_in.cookie), r->headers_in.x_forwarded_for, r->headers_out.cache_control, r->headers_out.link, u->headers_in.cache_control u->headers_in.cookies (renamed to u->headers_in.set_cookie). The r->headers_in.cookies and u->headers_in.cookies fields were renamed to r->headers_in.cookie and u->headers_in.set_cookie to match header names. The ngx_http_parse_multi_header_lines() and ngx_http_parse_set_cookie_lines() functions were changed accordingly. With this change, multi headers are now essentially equivalent to normal headers, and following changes will further make them equivalent.
2021-12-28Fixed a mismerge in 5c86189a1c1b.Ruslan Ermilov1-0/+2
2021-12-21Moved Huffman coding out of HTTP/2.Ruslan Ermilov1-0/+8
ngx_http_v2_huff_decode.c and ngx_http_v2_huff_encode.c are renamed to ngx_http_huff_decode.c and ngx_http_huff_encode.c.
2021-12-24Merged with the default branch.Ruslan Ermilov1-2/+2
2021-12-06HTTP/3: merged ngx_http_quic_module into ngx_http_v3_module.Roman Arutyunyan1-3/+0
2021-09-17HTTP/3: make ngx_http_log_error() static again.Roman Arutyunyan1-1/+0
This function was only referenced from ngx_http_v3_create_push_request() to initialize push connection log. Now the log handler is copied from the parent request connection. The change reduces diff to the default branch.
2021-08-05HTTP/3: got rid of HTTP/2 module dependency.Vladimir Homutov1-0/+6
The Huffman encoder/decoder now can be built separately from HTTP/2 module.
2021-05-05HTTP/3: renamed ngx_http_v3_connection_t to ngx_http_v3_session_t.Roman Arutyunyan1-2/+1
2021-05-05HTTP/3: reference h3c directly from ngx_http_connection_t.Roman Arutyunyan1-0/+2
Previously, an ngx_http_v3_connection_t object was created for HTTP/3 and then assinged to c->data instead of the generic ngx_http_connection_t object. Now a direct reference is added to ngx_http_connection_t, which is less confusing and does not require a flag for http3.
2021-02-17HTTP/3: introduced ngx_http_v3_parse_t structure.Roman Arutyunyan1-0/+1
The structure is used to parse an HTTP/3 request. An object of this type is added to ngx_http_request_t instead of h3_parse generic pointer. Also, the new field is located outside of the request ephemeral zone to keep it safe after request headers are parsed.
2021-01-25HTTP/3: refactored request body parser.Roman Arutyunyan1-3/+0
The change reduces diff to the default branch for src/http/ngx_http_request_body.c. Also, client Content-Length, if present, is now checked against the real body size sent by client.
2021-01-22HTTP/3: refactored request parser.Roman Arutyunyan1-0/+5
The change reduces diff to the default branch for src/http/ngx_http_request.c and src/http/ngx_http_parse.c.
2020-07-23HTTP/3: server pushes.Roman Arutyunyan1-0/+1
New directives are added: - http3_max_concurrent_pushes - http3_push - http3_push_preload
2020-07-21QUIC: added "quic" listen parameter.Roman Arutyunyan1-0/+3
The parameter allows processing HTTP/0.9-2 over QUIC. Also, introduced ngx_http_quic_module and moved QUIC settings there
2020-03-27Parsing HTTP/3 request body.Roman Arutyunyan1-0/+3
2020-03-13HTTP/3.Roman Arutyunyan1-0/+3
2019-02-25SSL: variables support in ssl_certificate and ssl_certificate_key.Maxim Dounin1-0/+4
To evaluate variables, a request is created in the certificate callback, and then freed. To do this without side effects on the stub_status counters and connection state, an additional function was introduced, ngx_http_alloc_request(). Only works with OpenSSL 1.0.2+, since there is no SSL_CTX_set_cert_cb() in older versions.
2016-10-03Modules compatibility: http2.Maxim Dounin1-3/+0
HTTP/2-specific fields in structures are now available unconditionally. Removed NGX_HTTP_V2 from the signature accordingly.
2015-09-11The HTTP/2 implementation (RFC 7240, 7241).Valentin Bartenev1-4/+4
The SPDY support is removed, as it's incompatible with the new module.
2015-06-11Moved ngx_http_parse_time() to core, renamed accordingly.Maxim Dounin1-3/+0
The function is now called ngx_parse_http_time(), and can be used by any code to parse HTTP-style date and time. In particular, it will be used for OCSP stapling. For compatibility, a macro to map ngx_http_parse_time() to the new name provided for a while.
2015-06-11Removed unused ngx_http_get_time() declaration.Maxim Dounin1-2/+0
2015-03-23Request body: unbuffered reading.Maxim Dounin1-0/+1
The r->request_body_no_buffering flag was introduced. It instructs client request body reading code to avoid reading the whole body, and to call post_handler early instead. The caller should use the ngx_http_read_unbuffered_request_body() function to read remaining parts of the body. Upstream module is now able to use this mode, if configured with the proxy_request_buffering directive.
2015-03-23Request body: filters support.Maxim Dounin1-0/+1
2015-03-20Removed busy locks.Ruslan Ermilov1-1/+0
2015-03-04Style: moved ngx_http_ephemeral() macro to ngx_http_request.h.Ruslan Ermilov1-3/+0
2014-04-29Upstream: added the "$upstream_cookie_<name>" variables.Vladimir Homutov1-0/+2
2013-05-11Fixed build with --with-mail_ssl_module.Maxim Dounin1-1/+1
If nginx was compiled without --with-http_ssl_module, but with some other module which uses OpenSSL (e.g. --with-mail_ssl_module), insufficient preprocessor check resulted in build failure. The problem was introduced by e0a3714a36f8 (1.3.14). Reported by Roman Arutyunyan.
2013-03-20Preliminary experimental support for SPDY draft 2.Valentin Bartenev1-0/+14
2013-03-11Removed unused prototype of ngx_http_find_server_conf().Valentin Bartenev1-1/+0
This function prototype and its implementation was added in r90, but the implementation was removed in r97.
2013-02-27SNI: reuse selected configuration for all requests in a connection.Valentin Bartenev1-1/+1
Previously, only the first request in a connection was assigned the configuration selected by SNI. All subsequent requests initially used the default server's configuration, ignoring SNI, which was wrong. Now all subsequent requests in a connection will initially use the configuration selected by SNI. This is done by storing a pointer to configuration in http connection object. It points to default server's configuration initially, but changed upon receipt of SNI. (The request's configuration can be further refined when parsing the request line and Host: header.) This change was not made specific to SNI as it also allows slightly faster access to configuration without the request object.
2013-01-16Fixed and improved the "*_bind" directives of proxying modules.Ruslan Ermilov1-1/+1
The "proxy_bind", "fastcgi_bind", "uwsgi_bind", "scgi_bind" and "memcached_bind" directives are now inherited; inherited value can be reset by the "off" parameter. Duplicate directives are now detected. Parameter value can now contain variables.
2012-11-21Request body: chunked parsing moved to ngx_http_parse.c from proxy.Maxim Dounin1-0/+10
No functional changes.
2012-01-18Copyright updated.Maxim Konovalov1-0/+1
2011-09-15Protocol version parsing in ngx_http_parse_status_line().Maxim Dounin1-0/+1
Once we know protocol version, set u->headers_in.connection_close to indicate implicitly assumed connection close with HTTP before 1.1.
2010-10-04ngx_http_degraded()Igor Sysoev1-0/+4
2010-06-15ngx_http_parse_status_line()Igor Sysoev1-0/+10
2009-12-21fix building by gcc 4.x with -O2/3/s in some Linux distributions:Igor Sysoev1-1/+1
dereferencing type-punned pointer will break strict-aliasing rules the bug has been introduced in r3065
2009-11-30support "*" in gzip_types, ssi_types, etcIgor Sysoev1-3/+3
2009-10-21*) move sockaddr to the listen optionsIgor Sysoev1-1/+1
*) rename ngx_http_listen_t to ngx_http_listen_opt_t
2009-10-21refactor http listen code:Igor Sysoev1-0/+2
*) add listen's to the global cmcf->ports array instead of server's one *) rename ngx_http_listen_conf_t to ngx_http_listen_opt_t
2009-10-19restore discard body handler after ngx_http_set_writer() set it toIgor Sysoev1-0/+1
ngx_http_test_reading(), the bug was introduced in r3050
2009-08-30*) ngx_http_ephemeralIgor Sysoev1-1/+5
*) use preallocated terminal_posted_request
2009-05-08allow to pass image filter errors via the same location where the filter is setIgor Sysoev1-1/+1
2009-05-01ngx_http_filter_finalize_request() and ngx_http_clean_header()Igor Sysoev1-0/+3
2009-03-23a prelimiary proxy cache supportIgor Sysoev1-10/+8
2009-03-22use complex value in error_pageIgor Sysoev1-1/+1
2009-03-19ngx_http_split_args()Igor Sysoev1-0/+2