aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_core.h
Commit message (Collapse)AuthorAge
* Upstream: fixed --with-compat build without SSL, broken by 454ad0e.Pavel Pautov2025-01-23
|
* Removed NGX_OPENSSL_QUIC macro, NGX_QUIC is enough.Ruslan Ermilov2021-09-14
|
* Core: added interface to linux bpf() system call.Vladimir Homutov2020-12-15
| | | | It contains wrappers for operations with BPF maps and for loading BPF programs.
* Core: hide "struct ngx_quic_connection_s" and further reduce diffs.Sergey Kandaurov2020-11-13
| | | | | As with the previous change, it became feasible with feec2cc762f6 that removes ngx_quic_connection_t from ngx_connection_s.
* QUIC: fixed bulding perl module by reducing header pollution.Sergey Kandaurov2020-07-22
| | | | | | | | | The ngx_http_perl_module module doesn't have a notion of including additional search paths through --with-cc-opt, which results in compile error incomplete type 'enum ssl_encryption_level_t' when building nginx without QUIC support. The enum is visible from quic event headers and eventually pollutes ngx_core.h. The fix is to limit including headers to compile units that are real consumers.
* Configure: unbreak with old OpenSSL, --with-http_v3_module added.Sergey Kandaurov2020-04-30
|
* Extracted transport part of the code into separate file.Vladimir Homutov2020-03-18
| | | | | | | | | | | | | | | All code dealing with serializing/deserializing is moved int srv/event/ngx_event_quic_transport.c/h file. All macros for dealing with data are internal to source file. The header file exposes frame types and error codes. The exported functions are currently packet header parsers and writers and frames parser/writer. The ngx_quic_header_t structure is updated with 'log' member. This avoids passing extra argument to parsing functions that need to report errors.
* Split transport and crypto parts into separate files.Vladimir Homutov2020-03-16
| | | | | | | | | | | | | | | | | | | | | | | | | New files: src/event/ngx_event_quic_protection.h src/event/ngx_event_quic_protection.c The protection.h header provides interface to the crypto part of the QUIC: 2 functions to initialize corresponding secrets: ngx_quic_set_initial_secret() ngx_quic_set_encryption_secret() and 2 functions to deal with packet processing: ngx_quic_encrypt() ngx_quic_decrypt() Also, structures representing secrets are defined there. All functions require SSL connection and a pool, only crypto operations inside, no access to nginx connections or events. Currently pool->log is used for the logging (instead of original c->log).
* HTTP/QUIC interface reworked.Vladimir Homutov2020-03-12
| | | | | | | | | | | - events handling moved into src/event/ngx_event_quic.c - http invokes once ngx_quic_run() and passes stream callback (diff to original http_request.c is now minimal) - streams are stored in rbtree using ID as a key - when a new stream is registered, appropriate callback is called - ngx_quic_stream_t type represents STREAM and stored in c->qs
* Initial QUIC support in http.Sergey Kandaurov2020-02-28
|
* Core: moved PROXY protocol fields out of ngx_connection_t.Roman Arutyunyan2019-10-21
| | | | | | Now a new structure ngx_proxy_protocol_t holds these fields. This allows to add more PROXY protocol fields in the future without modifying the connection structure.
* Stream: udp streams.Roman Arutyunyan2018-06-04
| | | | | | | | | | | | | | | | | Previously, only one client packet could be processed in a udp stream session even though multiple response packets were supported. Now multiple packets coming from the same client address and port are delivered to the same stream session. If it's required to maintain a single stream of data, nginx should be configured in a way that all packets from a client are delivered to the same worker. On Linux and DragonFly BSD the "reuseport" parameter should be specified for this. Other systems do not currently provide appropriate mechanisms. For these systems a single stream of udp packets is only guaranteed in single-worker configurations. The proxy_response directive now specifies how many packets are expected in response to a single client packet.
* Modules compatibility: compatibility with NGX_HTTP_SSL.Maxim Dounin2016-10-10
| | | | | | | With this change it is now possible to load modules compiled without the "--with-http_ssl_module" configure option into nginx binary compiled with it, and vice versa (if a module doesn't use ssl-specific functions), assuming both use the "--with-compat" option.
* Modules compatibility: compatibility with NGX_THREADS.Maxim Dounin2016-10-10
| | | | | | | With this change it is now possible to load modules compiled without the "--with-threads" configure option into nginx binary compiled with it, and vice versa (if a module does not use thread-specific functions), assuming both use the "--with-compat" option.
* Dynamic modules: dlopen() support.Maxim Dounin2016-02-04
|
* Dynamic modules: moved module-related stuff to separate files.Maxim Dounin2016-02-04
|
* Moved ngx_http_parse_time() to core, renamed accordingly.Maxim Dounin2015-06-11
| | | | | | | | | 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.
* Core: ensure that ngx_config.h is always included first.Sergey Kandaurov2015-04-16
| | | | | This fixes compilation of various 3rd party modules when nginx is configured with threads.
* Core: read/write locks.Ruslan Ermilov2015-03-21
|
* Thread pools implementation.Valentin Bartenev2015-03-14
|
* Added syslog support for error_log and access_log directives.Vladimir Homutov2014-05-12
|
* Core: use '\r' for CR and '\n' for LF definitions.Ruslan Ermilov2014-05-14
|
* Added server-side support for PROXY protocol v1 (ticket #355).Roman Arutyunyan2014-03-17
| | | | | | | | Client address specified in the PROXY protocol header is now saved in the $proxy_protocol_addr variable and can be used in the realip module. This is currently not implemented for mail.
* Moved ngx_array_t definition from ngx_core.h to ngx_array.h.Ruslan Ermilov2013-03-21
|
* OCSP stapling: loading OCSP responses.Maxim Dounin2012-10-01
| | | | | | | | | | | | | This includes the ssl_stapling_responder directive (defaults to OCSP responder set in certificate's AIA extension). OCSP response for a given certificate is requested once we get at least one connection with certificate_status extension in ClientHello, and certificate status won't be sent in the connection in question. This due to limitations in the OpenSSL API (certificate status callback is blocking). Note: SSL_CTX_use_certificate_chain_file() was reimplemented as it doesn't allow to access the certificate loaded via SSL_CTX.
* Added disable_symlinks directive.Andrey Belov2012-02-13
| | | | | | | | | | | | | | | | | | To completely disable symlinks (disable_symlinks on) we use openat(O_NOFOLLOW) for each path component to avoid races. To allow symlinks with the same owner (disable_symlinks if_not_owner), use openat() (followed by fstat()) and fstatat(AT_SYMLINK_NOFOLLOW), and then compare uids between fstat() and fstatat(). As there is a race between openat() and fstatat() we don't know if openat() in fact opened symlink or not. Therefore, we have to compare uids even if fstatat() reports the opened component isn't a symlink (as we don't know whether it was symlink during openat() or not). Default value is off, i.e. symlinks are allowed.
* Copyright updated.Maxim Konovalov2012-01-18
|
* ngx_murmur_hash2()Igor Sysoev2011-04-15
|
* ngx_min()Igor Sysoev2009-11-16
|
* regex named capturesIgor Sysoev2009-11-16
|
* FreeBSD and Linux AIO supportIgor Sysoev2009-08-28
|
* *) autoconfigure struct dirent capabilitiesIgor Sysoev2008-09-05
| | | | | *) move src/os/.../ngx_types.h's content into src/os/.../ngx_files.h and delete src/os/.../ngx_types.h
* fix previous commitIgor Sysoev2007-11-23
|
* ngx_queue.hIgor Sysoev2007-11-23
|
* open file cacheIgor Sysoev2007-09-01
|
* move the session cache callbacks to the ngx_openssl_moduleIgor Sysoev2007-01-03
|
* upstream choice modulesIgor Sysoev2006-12-04
|
* slab allocator in shared memoryIgor Sysoev2006-11-20
|
* axe src/core/ngx_unix_domain.*Igor Sysoev2006-10-24
|
* ngx_crc32()Igor Sysoev2006-10-18
|
* nginx-0.3.47-RELEASE importrelease-0.3.47Igor Sysoev2006-05-23
| | | | | | | *) Feature: the "upstream" directive. *) Change: now the "\" escape symbol in the "\"" and "\'" pairs in the SSI command is always removed.
* nginx-0.3.27-RELEASE importrelease-0.3.27Igor Sysoev2006-02-08
| | | | | | | | | | | | | | | | | | | | | | *) Change: the "variables_hash_max_size" and "variables_hash_bucket_size" directives. *) Feature: the $body_bytes_sent variable can be used not only in the "log_format" directive. *) Feature: the $ssl_protocol and $ssl_cipher variables. *) Feature: the cache line size detection for widespread CPUs at start time. *) Feature: now the "accept_mutex" directive is supported using fcntl(2) on platforms different from i386, amd64, sparc64, and ppc. *) Feature: the "lock_file" directive and the --with-lock-path=PATH autoconfiguration directive. *) Bugfix: if the HTTPS protocol was used in the "proxy_pass" directive then the requests with the body was not transferred.
* nginx-0.3.24-RELEASE importrelease-0.3.24Igor Sysoev2006-02-01
| | | | | | | | | | | | | | | | *) Workaround: for bug in FreeBSD kqueue. *) Bugfix: now a response generated by the "post_action" directive is not transferred to a client. *) Bugfix: the memory leaks were occurring if many log files were used. *) Bugfix: the first "proxy_redirect" directive was working inside one location. *) Bugfix: on 64-bit platforms segmentation fault may occurred on start if the many names were used in the "server_name" directives; the bug had appeared in 0.3.18.
* nginx-0.3.10-RELEASE importrelease-0.3.10Igor Sysoev2005-11-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *) Change: the "valid_referers" directive and the "$invalid_referer" variable were moved to the new ngx_http_referer_module from the ngx_http_rewrite_module. *) Change: the "$apache_bytes_sent" variable name was changed to "$body_bytes_sent". *) Feature: the "$sent_http_..." variables. *) Feature: the "if" directive supports the "=" and "!=" operations. *) Feature: the "proxy_pass" directive supports the HTTPS protocol. *) Feature: the "proxy_set_body" directive. *) Feature: the "post_action" directive. *) Feature: the ngx_http_empty_gif_module. *) Feature: the "worker_cpu_affinity" directive for Linux. *) Bugfix: the "rewrite" directive did not unescape URI part in redirect, now it is unescaped except the %00-%25 and %7F-%FF characters. *) Bugfix: nginx could not be built by the icc 9.0 compiler. *) Bugfix: if the SSI was enabled for zero size static file, then the chunked response was encoded incorrectly.
* nginx-0.3.1-RELEASE importrelease-0.3.1Igor Sysoev2005-10-10
| | | | | | | | | *) Bugfix: the segmentation fault occurred when the signal queue overflowed if the "rtsig" method was used; the bug had appeared in 0.2.0. *) Change: correct handling of the "\\", "\"", "\'", and "\$" pairs in SSI.
* nginx-0.3.0-RELEASE importrelease-0.3.0Igor Sysoev2005-10-07
| | | | | | *) Change: the 10-days live time limit of worker process was eliminated. The limit was introduced because of millisecond timers overflow.
* nginx-0.2.2-RELEASE importrelease-0.2.2Igor Sysoev2005-09-30
| | | | | | | | | | | | | | | | | | | | | | *) Feature: the "config errmsg" command of the ngx_http_ssi_module. *) Change: the ngx_http_geo_module variables can be overridden by the "set" directive. *) Feature: the "ssl_protocols" and "ssl_prefer_server_ciphers" directives of the ngx_http_ssl_module and ngx_imap_ssl_module. *) Bugfix: the ngx_http_autoindex_module did not show correctly the long file names; *) Bugfix: the ngx_http_autoindex_module now do not show the files starting by dot. *) Bugfix: if the SSL handshake failed then another connection may be closed too. Thanks to Rob Mueller. *) Bugfix: the export versions of MSIE 5.x could not connect via HTTPS.
* nginx-0.1.28-RELEASE importrelease-0.1.28Igor Sysoev2005-04-08
| | | | | | *) Bugfix: nginx hogs CPU while proxying the huge files. *) Bugfix: nginx could not be built by gcc 4.0 on Linux.
* nginx-0.1.17-RELEASE importrelease-0.1.17Igor Sysoev2005-02-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | *) Change: the ngx_http_rewrite_module was rewritten from the scratch. Now it is possible to redirect, to return the error codes, to check the variables and referrers. The directives can be used inside locations. The redirect directive was canceled. *) Feature: the ngx_http_geo_module. *) Feature: the proxy_set_x_var and fastcgi_set_var directives. *) Bugfix: the location configuration with "=" modifier may be used in another location. *) Bugfix: the correct content type was set only for requests that use small caps letters in extension. *) Bugfix: if the proxy_pass or fastcgi_pass directives were set in the location, and access was denied, and the error was redirected to a static page, then the segmentation fault occurred. *) Bugfix: if in a proxied "Location" header was a relative URL, then a host name and a slash were added to them; the bug had appeared in 0.1.14. *) Bugfix: the system error message was not logged on Linux.
* nginx-0.1.14-RELEASE importrelease-0.1.14Igor Sysoev2005-01-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *) Feature: the autoconfiguration directives: --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH, and --http-fastcgi-temp-path=PATH *) Change: the directory name for the temporary files with the client request body is specified by directive client_body_temp_path, by default it is <prefix>/client_body_temp. *) Feature: the ngx_http_fastcgi_module and the directives: fastcgi_pass, fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout, fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat, fastcgi_header_buffer_size, fastcgi_buffers, fastcgi_busy_buffers_size, fastcgi_temp_path, fastcgi_max_temp_file_size, fastcgi_temp_file_write_size, fastcgi_next_upstream, and fastcgi_x_powered_by. *) Bugfix: the "[alert] zero size buf" error; the bug had appeared in 0.1.3. *) Change: the URI must be specified after the host name in the proxy_pass directive. *) Change: the %3F symbol in the URI was considered as the argument string start. *) Feature: the unix domain sockets support in the ngx_http_proxy_module. *) Feature: the ssl_engine and ssl_ciphers directives. Thanks to Sergey Skvortsov for SSL-accelerator.