Mercurial > hg > nginx-quic
annotate src/core/ngx_core.h @ 8437:d5f93733c17d quic
QUIC: relaxed client id requirements.
Client IDs cannot be reused on different paths. This change allows to reuse
client id previosly seen on the same path (but with different dcid) in case
when no unused client IDs are available.
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Wed, 05 May 2021 18:11:55 +0300 |
parents | d3747ba486e7 |
children | 7603284f7af5 |
rev | line source |
---|---|
441
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
414
diff
changeset
|
1 |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
414
diff
changeset
|
2 /* |
444
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
441
diff
changeset
|
3 * Copyright (C) Igor Sysoev |
4412 | 4 * Copyright (C) Nginx, Inc. |
441
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
414
diff
changeset
|
5 */ |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
414
diff
changeset
|
6 |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
414
diff
changeset
|
7 |
4
c5f071d376e5
nginx-0.0.1-2002-08-22-19:24:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
8 #ifndef _NGX_CORE_H_INCLUDED_ |
c5f071d376e5
nginx-0.0.1-2002-08-22-19:24:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
9 #define _NGX_CORE_H_INCLUDED_ |
c5f071d376e5
nginx-0.0.1-2002-08-22-19:24:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
10 |
c5f071d376e5
nginx-0.0.1-2002-08-22-19:24:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
11 |
6106
cb790d1b2d16
Core: ensure that ngx_config.h is always included first.
Sergey Kandaurov <pluknet@nginx.com>
parents:
6101
diff
changeset
|
12 #include <ngx_config.h> |
cb790d1b2d16
Core: ensure that ngx_config.h is always included first.
Sergey Kandaurov <pluknet@nginx.com>
parents:
6101
diff
changeset
|
13 |
cb790d1b2d16
Core: ensure that ngx_config.h is always included first.
Sergey Kandaurov <pluknet@nginx.com>
parents:
6101
diff
changeset
|
14 |
8208
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
15 typedef struct ngx_module_s ngx_module_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
16 typedef struct ngx_conf_s ngx_conf_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
17 typedef struct ngx_cycle_s ngx_cycle_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
18 typedef struct ngx_pool_s ngx_pool_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
19 typedef struct ngx_chain_s ngx_chain_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
20 typedef struct ngx_log_s ngx_log_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
21 typedef struct ngx_open_file_s ngx_open_file_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
22 typedef struct ngx_command_s ngx_command_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
23 typedef struct ngx_file_s ngx_file_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
24 typedef struct ngx_event_s ngx_event_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
25 typedef struct ngx_event_aio_s ngx_event_aio_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
26 typedef struct ngx_connection_s ngx_connection_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
27 typedef struct ngx_thread_task_s ngx_thread_task_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
28 typedef struct ngx_ssl_s ngx_ssl_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
29 typedef struct ngx_proxy_protocol_s ngx_proxy_protocol_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
30 typedef struct ngx_quic_stream_s ngx_quic_stream_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
31 typedef struct ngx_ssl_connection_s ngx_ssl_connection_t; |
d1cf691a82e8
Core: hide "struct ngx_quic_connection_s" and further reduce diffs.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8004
diff
changeset
|
32 typedef struct ngx_udp_connection_s ngx_udp_connection_t; |
6018
466bd63b63d1
Thread pools implementation.
Valentin Bartenev <vbart@nginx.com>
parents:
5702
diff
changeset
|
33 |
395
f8f0f1834266
nginx-0.0.7-2004-07-16-21:11:43 import
Igor Sysoev <igor@sysoev.ru>
parents:
393
diff
changeset
|
34 typedef void (*ngx_event_handler_pt)(ngx_event_t *ev); |
547 | 35 typedef void (*ngx_connection_handler_pt)(ngx_connection_t *c); |
395
f8f0f1834266
nginx-0.0.7-2004-07-16-21:11:43 import
Igor Sysoev <igor@sysoev.ru>
parents:
393
diff
changeset
|
36 |
186
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
37 |
370
54f76b0b8dca
nginx-0.0.7-2004-06-27-22:01:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
365
diff
changeset
|
38 #define NGX_OK 0 |
54f76b0b8dca
nginx-0.0.7-2004-06-27-22:01:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
365
diff
changeset
|
39 #define NGX_ERROR -1 |
54f76b0b8dca
nginx-0.0.7-2004-06-27-22:01:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
365
diff
changeset
|
40 #define NGX_AGAIN -2 |
54f76b0b8dca
nginx-0.0.7-2004-06-27-22:01:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
365
diff
changeset
|
41 #define NGX_BUSY -3 |
54f76b0b8dca
nginx-0.0.7-2004-06-27-22:01:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
365
diff
changeset
|
42 #define NGX_DONE -4 |
54f76b0b8dca
nginx-0.0.7-2004-06-27-22:01:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
365
diff
changeset
|
43 #define NGX_DECLINED -5 |
54f76b0b8dca
nginx-0.0.7-2004-06-27-22:01:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
365
diff
changeset
|
44 #define NGX_ABORT -6 |
54f76b0b8dca
nginx-0.0.7-2004-06-27-22:01:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
365
diff
changeset
|
45 |
54f76b0b8dca
nginx-0.0.7-2004-06-27-22:01:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
365
diff
changeset
|
46 |
559 | 47 #include <ngx_errno.h> |
212
679f60139863
nginx-0.0.1-2003-12-19-11:15:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
208
diff
changeset
|
48 #include <ngx_atomic.h> |
559 | 49 #include <ngx_thread.h> |
557 | 50 #include <ngx_rbtree.h> |
186
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
51 #include <ngx_time.h> |
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
52 #include <ngx_socket.h> |
2234
c7c319896bb4
*) autoconfigure struct dirent capabilities
Igor Sysoev <igor@sysoev.ru>
parents:
1650
diff
changeset
|
53 #include <ngx_string.h> |
c7c319896bb4
*) autoconfigure struct dirent capabilities
Igor Sysoev <igor@sysoev.ru>
parents:
1650
diff
changeset
|
54 #include <ngx_files.h> |
605 | 55 #include <ngx_shmem.h> |
186
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
56 #include <ngx_process.h> |
278
0ba4821f4460
nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents:
276
diff
changeset
|
57 #include <ngx_user.h> |
6380
7142b04337d6
Dynamic modules: dlopen() support.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6378
diff
changeset
|
58 #include <ngx_dlopen.h> |
157
70b36c805682
nginx-0.0.1-2003-10-23-19:54:19 import
Igor Sysoev <igor@sysoev.ru>
parents:
148
diff
changeset
|
59 #include <ngx_parse.h> |
6180
8b6fa4842133
Moved ngx_http_parse_time() to core, renamed accordingly.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6106
diff
changeset
|
60 #include <ngx_parse_time.h> |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
71
diff
changeset
|
61 #include <ngx_log.h> |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
71
diff
changeset
|
62 #include <ngx_alloc.h> |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
343
diff
changeset
|
63 #include <ngx_palloc.h> |
343
6bdf858bff8c
nginx-0.0.3-2004-05-28-19:49:23 import; rename ngx_hunk_t to ngx_buf_t
Igor Sysoev <igor@sysoev.ru>
parents:
340
diff
changeset
|
64 #include <ngx_buf.h> |
1646 | 65 #include <ngx_queue.h> |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
71
diff
changeset
|
66 #include <ngx_array.h> |
414
388a842cbbe1
nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
67 #include <ngx_list.h> |
507 | 68 #include <ngx_hash.h> |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
71
diff
changeset
|
69 #include <ngx_file.h> |
201
267ea1d98683
nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
195
diff
changeset
|
70 #include <ngx_crc.h> |
790 | 71 #include <ngx_crc32.h> |
3891 | 72 #include <ngx_murmurhash.h> |
455 | 73 #if (NGX_PCRE) |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
191
diff
changeset
|
74 #include <ngx_regex.h> |
212
679f60139863
nginx-0.0.1-2003-12-19-11:15:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
208
diff
changeset
|
75 #endif |
485 | 76 #include <ngx_radix_tree.h> |
178
a8ff48d26cca
nginx-0.0.1-2003-11-11-00:09:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
157
diff
changeset
|
77 #include <ngx_times.h> |
6101 | 78 #include <ngx_rwlock.h> |
611 | 79 #include <ngx_shmtx.h> |
860
201d017ea470
slab allocator in shared memory
Igor Sysoev <igor@sysoev.ru>
parents:
806
diff
changeset
|
80 #include <ngx_slab.h> |
974
8dfb3aa75de2
move the session cache callbacks to the ngx_openssl_module
Igor Sysoev <igor@sysoev.ru>
parents:
884
diff
changeset
|
81 #include <ngx_inet.h> |
8dfb3aa75de2
move the session cache callbacks to the ngx_openssl_module
Igor Sysoev <igor@sysoev.ru>
parents:
884
diff
changeset
|
82 #include <ngx_cycle.h> |
4875
386a06a22c40
OCSP stapling: loading OCSP responses.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4477
diff
changeset
|
83 #include <ngx_resolver.h> |
651 | 84 #if (NGX_OPENSSL) |
85 #include <ngx_event_openssl.h> | |
7849
0e6528551f26
Configure: unbreak with old OpenSSL, --with-http_v3_module added.
Sergey Kandaurov <pluknet@nginx.com>
parents:
7690
diff
changeset
|
86 #if (NGX_OPENSSL_QUIC) |
7633
5d91389e0fd3
Initial QUIC support in http.
Sergey Kandaurov <pluknet@nginx.com>
parents:
7590
diff
changeset
|
87 #include <ngx_event_quic.h> |
651 | 88 #endif |
7849
0e6528551f26
Configure: unbreak with old OpenSSL, --with-http_v3_module added.
Sergey Kandaurov <pluknet@nginx.com>
parents:
7690
diff
changeset
|
89 #endif |
278
0ba4821f4460
nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents:
276
diff
changeset
|
90 #include <ngx_process_cycle.h> |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
71
diff
changeset
|
91 #include <ngx_conf_file.h> |
6378
0f203a2af17c
Dynamic modules: moved module-related stuff to separate files.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6180
diff
changeset
|
92 #include <ngx_module.h> |
1453 | 93 #include <ngx_open_file_cache.h> |
183
4c698194c56d
nginx-0.0.1-2003-11-13-19:16:33 import
Igor Sysoev <igor@sysoev.ru>
parents:
178
diff
changeset
|
94 #include <ngx_os.h> |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
71
diff
changeset
|
95 #include <ngx_connection.h> |
5702
777202558122
Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents:
5684
diff
changeset
|
96 #include <ngx_syslog.h> |
5605
3a72b1805c52
Added server-side support for PROXY protocol v1 (ticket #355).
Roman Arutyunyan <arut@nginx.com>
parents:
5125
diff
changeset
|
97 #include <ngx_proxy_protocol.h> |
8268
d3747ba486e7
Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents:
8208
diff
changeset
|
98 #if (NGX_HAVE_BPF) |
d3747ba486e7
Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents:
8208
diff
changeset
|
99 #include <ngx_bpf.h> |
d3747ba486e7
Core: added interface to linux bpf() system call.
Vladimir Homutov <vl@nginx.com>
parents:
8208
diff
changeset
|
100 #endif |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
71
diff
changeset
|
101 |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
71
diff
changeset
|
102 |
5684
bc98b0f11bdd
Core: use '\r' for CR and '\n' for LF definitions.
Ruslan Ermilov <ru@nginx.com>
parents:
5605
diff
changeset
|
103 #define LF (u_char) '\n' |
bc98b0f11bdd
Core: use '\r' for CR and '\n' for LF definitions.
Ruslan Ermilov <ru@nginx.com>
parents:
5605
diff
changeset
|
104 #define CR (u_char) '\r' |
bc98b0f11bdd
Core: use '\r' for CR and '\n' for LF definitions.
Ruslan Ermilov <ru@nginx.com>
parents:
5605
diff
changeset
|
105 #define CRLF "\r\n" |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
92
diff
changeset
|
106 |
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
92
diff
changeset
|
107 |
3325 | 108 #define ngx_abs(value) (((value) >= 0) ? (value) : - (value)) |
109 #define ngx_max(val1, val2) ((val1 < val2) ? (val2) : (val1)) | |
3329 | 110 #define ngx_min(val1, val2) ((val1 > val2) ? (val2) : (val1)) |
557 | 111 |
611 | 112 void ngx_cpuinfo(void); |
113 | |
4477
7033faf6dc3c
Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents:
4412
diff
changeset
|
114 #if (NGX_HAVE_OPENAT) |
7033faf6dc3c
Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents:
4412
diff
changeset
|
115 #define NGX_DISABLE_SYMLINKS_OFF 0 |
7033faf6dc3c
Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents:
4412
diff
changeset
|
116 #define NGX_DISABLE_SYMLINKS_ON 1 |
7033faf6dc3c
Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents:
4412
diff
changeset
|
117 #define NGX_DISABLE_SYMLINKS_NOTOWNER 2 |
7033faf6dc3c
Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents:
4412
diff
changeset
|
118 #endif |
557 | 119 |
4
c5f071d376e5
nginx-0.0.1-2002-08-22-19:24:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
120 #endif /* _NGX_CORE_H_INCLUDED_ */ |