annotate src/core/ngx_connection.h @ 7660:d33e17499088

Version bump.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 26 May 2020 22:03:00 +0300
parents 06b01840bd42
children 4e141d0816d4 5d91389e0fd3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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: 432
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: 432
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
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 4323
diff changeset
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: 432
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: 432
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: 432
diff changeset
7
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 #ifndef _NGX_CONNECTION_H_INCLUDED_
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 #define _NGX_CONNECTION_H_INCLUDED_
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 101
diff changeset
11
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
12 #include <ngx_config.h>
92
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 91
diff changeset
13 #include <ngx_core.h>
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 101
diff changeset
14
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 101
diff changeset
15
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
16 typedef struct ngx_listening_s ngx_listening_t;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
17
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
18 struct ngx_listening_s {
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
19 ngx_socket_t fd;
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 101
diff changeset
20
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
21 struct sockaddr *sockaddr;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
22 socklen_t socklen; /* size of sockaddr */
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
23 size_t addr_text_max_len;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
24 ngx_str_t addr_text;
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 101
diff changeset
25
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
26 int type;
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 557
diff changeset
27
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
28 int backlog;
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 557
diff changeset
29 int rcvbuf;
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 557
diff changeset
30 int sndbuf;
4323
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 3880
diff changeset
31 #if (NGX_HAVE_KEEPALIVE_TUNABLE)
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 3880
diff changeset
32 int keepidle;
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 3880
diff changeset
33 int keepintvl;
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 3880
diff changeset
34 int keepcnt;
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 3880
diff changeset
35 #endif
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 101
diff changeset
36
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
37 /* handler of accepted connection */
547
818fbd4750b9 nginx-0.2.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
38 ngx_connection_handler_pt handler;
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
39
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
40 void *servers; /* array of ngx_http_in_addr_t, for example */
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 101
diff changeset
41
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
42 ngx_log_t log;
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2562
diff changeset
43 ngx_log_t *logp;
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 101
diff changeset
44
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
45 size_t pool_size;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
46 /* should be here because of the AcceptEx() preread */
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
47 size_t post_accept_buffer_size;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
48 /* should be here because of the deferred accept */
557
ecd9c160f25b nginx-0.3.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 547
diff changeset
49 ngx_msec_t post_accept_timeout;
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
50
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
51 ngx_listening_t *previous;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
52 ngx_connection_t *connection;
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 101
diff changeset
53
7286
d27aa9060c95 Stream: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents: 7007
diff changeset
54 ngx_rbtree_t rbtree;
d27aa9060c95 Stream: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents: 7007
diff changeset
55 ngx_rbtree_node_t sentinel;
d27aa9060c95 Stream: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents: 7007
diff changeset
56
6153
4f6efabcb09b The "reuseport" option of the "listen" directive.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6129
diff changeset
57 ngx_uint_t worker;
4f6efabcb09b The "reuseport" option of the "listen" directive.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6129
diff changeset
58
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
59 unsigned open:1;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
60 unsigned remain:1;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
61 unsigned ignore:1;
109
a9bc21d63fe4 nginx-0.0.1-2003-07-02-18:41:17 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
62
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
63 unsigned bound:1; /* already bound */
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
64 unsigned inherited:1; /* inherited from previous process */
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
65 unsigned nonblocking_accept:1;
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 557
diff changeset
66 unsigned listen:1;
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
67 unsigned nonblocking:1;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
68 unsigned shared:1; /* shared between threads or processes */
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
69 unsigned addr_ntop:1;
6436
8f038068f4bc Stream: UDP proxy.
Roman Arutyunyan <arut@nginx.com>
parents: 6246
diff changeset
70 unsigned wildcard:1;
523
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
71
6719
cebf5fed00bf Modules compatibility: removed unneeded IPV6_V6ONLY checks.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6602
diff changeset
72 #if (NGX_HAVE_INET6)
4771
bdcdbdf35b52 Core: ipv6only is now on by default.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
73 unsigned ipv6only:1;
2562
c352c419be85 ipv6only
Igor Sysoev <igor@sysoev.ru>
parents: 2560
diff changeset
74 #endif
6153
4f6efabcb09b The "reuseport" option of the "listen" directive.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6129
diff changeset
75 unsigned reuseport:1;
4f6efabcb09b The "reuseport" option of the "listen" directive.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6129
diff changeset
76 unsigned add_reuseport:1;
4323
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 3880
diff changeset
77 unsigned keepalive:2;
2562
c352c419be85 ipv6only
Igor Sysoev <igor@sysoev.ru>
parents: 2560
diff changeset
78
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
79 unsigned deferred_accept:1;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
80 unsigned delete_deferred:1;
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
81 unsigned add_deferred:1;
6721
48bab8b83f4e Modules compatibility: removed two NGX_HAVE_DEFERRED_ACCEPT checks.
Ruslan Ermilov <ru@nginx.com>
parents: 6720
diff changeset
82 #if (NGX_HAVE_DEFERRED_ACCEPT && defined SO_ACCEPTFILTER)
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
83 char *accept_filter;
523
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
84 #endif
3676
4430d110293e listen setfib=X
Igor Sysoev <igor@sysoev.ru>
parents: 3263
diff changeset
85 #if (NGX_HAVE_SETFIB)
4430d110293e listen setfib=X
Igor Sysoev <igor@sysoev.ru>
parents: 3263
diff changeset
86 int setfib;
4430d110293e listen setfib=X
Igor Sysoev <igor@sysoev.ru>
parents: 3263
diff changeset
87 #endif
419
47709bff4468 nginx-0.0.10-2004-09-09-19:40:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 417
diff changeset
88
5456
692afcea9d0d Added support for TCP_FASTOPEN supported in Linux >= 3.7.1.
Mathew Rodley <mathew@rodley.com.au>
parents: 5104
diff changeset
89 #if (NGX_HAVE_TCP_FASTOPEN)
692afcea9d0d Added support for TCP_FASTOPEN supported in Linux >= 3.7.1.
Mathew Rodley <mathew@rodley.com.au>
parents: 5104
diff changeset
90 int fastopen;
692afcea9d0d Added support for TCP_FASTOPEN supported in Linux >= 3.7.1.
Mathew Rodley <mathew@rodley.com.au>
parents: 5104
diff changeset
91 #endif
692afcea9d0d Added support for TCP_FASTOPEN supported in Linux >= 3.7.1.
Mathew Rodley <mathew@rodley.com.au>
parents: 5104
diff changeset
92
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
93 };
92
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 91
diff changeset
94
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
95
256
8e39cab6abd5 nginx-0.0.2-2004-02-10-19:23:38 import
Igor Sysoev <igor@sysoev.ru>
parents: 253
diff changeset
96 typedef enum {
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6436
diff changeset
97 NGX_ERROR_ALERT = 0,
Ruslan Ermilov <ru@nginx.com>
parents: 6436
diff changeset
98 NGX_ERROR_ERR,
Ruslan Ermilov <ru@nginx.com>
parents: 6436
diff changeset
99 NGX_ERROR_INFO,
Ruslan Ermilov <ru@nginx.com>
parents: 6436
diff changeset
100 NGX_ERROR_IGNORE_ECONNRESET,
Ruslan Ermilov <ru@nginx.com>
parents: 6436
diff changeset
101 NGX_ERROR_IGNORE_EINVAL
256
8e39cab6abd5 nginx-0.0.2-2004-02-10-19:23:38 import
Igor Sysoev <igor@sysoev.ru>
parents: 253
diff changeset
102 } ngx_connection_log_error_e;
8e39cab6abd5 nginx-0.0.2-2004-02-10-19:23:38 import
Igor Sysoev <igor@sysoev.ru>
parents: 253
diff changeset
103
8e39cab6abd5 nginx-0.0.2-2004-02-10-19:23:38 import
Igor Sysoev <igor@sysoev.ru>
parents: 253
diff changeset
104
344
e366ba5db8f8 nginx-0.0.3-2004-06-01-10:04:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 343
diff changeset
105 typedef enum {
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6436
diff changeset
106 NGX_TCP_NODELAY_UNSET = 0,
Ruslan Ermilov <ru@nginx.com>
parents: 6436
diff changeset
107 NGX_TCP_NODELAY_SET,
Ruslan Ermilov <ru@nginx.com>
parents: 6436
diff changeset
108 NGX_TCP_NODELAY_DISABLED
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
109 } ngx_connection_tcp_nodelay_e;
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
110
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
111
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
112 typedef enum {
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6436
diff changeset
113 NGX_TCP_NOPUSH_UNSET = 0,
Ruslan Ermilov <ru@nginx.com>
parents: 6436
diff changeset
114 NGX_TCP_NOPUSH_SET,
Ruslan Ermilov <ru@nginx.com>
parents: 6436
diff changeset
115 NGX_TCP_NOPUSH_DISABLED
344
e366ba5db8f8 nginx-0.0.3-2004-06-01-10:04:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 343
diff changeset
116 } ngx_connection_tcp_nopush_e;
e366ba5db8f8 nginx-0.0.3-2004-06-01-10:04:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 343
diff changeset
117
e366ba5db8f8 nginx-0.0.3-2004-06-01-10:04:46 import
Igor Sysoev <igor@sysoev.ru>
parents: 343
diff changeset
118
829
362d156f0278 high level HTTP buffered flags should be on per-subrequest basis,
Igor Sysoev <igor@sysoev.ru>
parents: 641
diff changeset
119 #define NGX_LOWLEVEL_BUFFERED 0x0f
362d156f0278 high level HTTP buffered flags should be on per-subrequest basis,
Igor Sysoev <igor@sysoev.ru>
parents: 641
diff changeset
120 #define NGX_SSL_BUFFERED 0x01
6246
257b51c37c5a The HTTP/2 implementation (RFC 7240, 7241).
Valentin Bartenev <vbart@nginx.com>
parents: 6220
diff changeset
121 #define NGX_HTTP_V2_BUFFERED 0x02
597
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 583
diff changeset
122
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 583
diff changeset
123
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
124 struct ngx_connection_s {
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
125 void *data;
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
126 ngx_event_t *read;
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
127 ngx_event_t *write;
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 101
diff changeset
128
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
129 ngx_socket_t fd;
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 101
diff changeset
130
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
131 ngx_recv_pt recv;
539
371c1cee100d nginx-0.1.44-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
132 ngx_send_pt send;
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 563
diff changeset
133 ngx_recv_chain_pt recv_chain;
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
134 ngx_send_chain_pt send_chain;
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
135
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
136 ngx_listening_t *listening;
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
137
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
138 off_t sent;
8
708f8bb772ec nginx-0.0.1-2002-09-02-18:48:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 7
diff changeset
139
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
140 ngx_log_t *log;
57
a499e0d1f16e nginx-0.0.1-2003-01-30-10:28:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 44
diff changeset
141
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
142 ngx_pool_t *pool;
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 101
diff changeset
143
6436
8f038068f4bc Stream: UDP proxy.
Roman Arutyunyan <arut@nginx.com>
parents: 6246
diff changeset
144 int type;
8f038068f4bc Stream: UDP proxy.
Roman Arutyunyan <arut@nginx.com>
parents: 6246
diff changeset
145
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
146 struct sockaddr *sockaddr;
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
147 socklen_t socklen;
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
148 ngx_str_t addr_text;
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 101
diff changeset
149
7590
06b01840bd42 Core: moved PROXY protocol fields out of ngx_connection_t.
Roman Arutyunyan <arut@nginx.com>
parents: 7315
diff changeset
150 ngx_proxy_protocol_t *proxy_protocol;
5605
3a72b1805c52 Added server-side support for PROXY protocol v1 (ticket #355).
Roman Arutyunyan <arut@nginx.com>
parents: 5513
diff changeset
151
6735
e38e9c50a40e Modules compatibility: compatibility with NGX_HTTP_SSL.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6734
diff changeset
152 #if (NGX_SSL || NGX_COMPAT)
547
818fbd4750b9 nginx-0.2.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
153 ngx_ssl_connection_t *ssl;
392
d1222d46b3f9 nginx-0.0.7-2004-07-15-00:07:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 380
diff changeset
154 #endif
d1222d46b3f9 nginx-0.0.7-2004-07-15-00:07:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 380
diff changeset
155
7286
d27aa9060c95 Stream: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents: 7007
diff changeset
156 ngx_udp_connection_t *udp;
d27aa9060c95 Stream: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents: 7007
diff changeset
157
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
158 struct sockaddr *local_sockaddr;
5463
1ab1cf63f885 Core: keep the length of the local sockaddr.
Ruslan Ermilov <ru@nginx.com>
parents: 5456
diff changeset
159 socklen_t local_socklen;
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 101
diff changeset
160
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
161 ngx_buf_t *buffer;
8
708f8bb772ec nginx-0.0.1-2002-09-02-18:48:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 7
diff changeset
162
3880
e3cb8e27e413 reuse keepalive connections if there are no free worker connections
Igor Sysoev <igor@sysoev.ru>
parents: 3676
diff changeset
163 ngx_queue_t queue;
e3cb8e27e413 reuse keepalive connections if there are no free worker connections
Igor Sysoev <igor@sysoev.ru>
parents: 3676
diff changeset
164
495
fc9909c369b2 nginx-0.1.22-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
165 ngx_atomic_uint_t number;
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
166
2888
512d164a8348 keepalive_requests
Igor Sysoev <igor@sysoev.ru>
parents: 2854
diff changeset
167 ngx_uint_t requests;
512d164a8348 keepalive_requests
Igor Sysoev <igor@sysoev.ru>
parents: 2854
diff changeset
168
829
362d156f0278 high level HTTP buffered flags should be on per-subrequest basis,
Igor Sysoev <igor@sysoev.ru>
parents: 641
diff changeset
169 unsigned buffered:8;
597
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 583
diff changeset
170
2560
a7443674e429 ignore EINVAL from setsockopt() on Solaris
Igor Sysoev <igor@sysoev.ru>
parents: 2512
diff changeset
171 unsigned log_error:3; /* ngx_connection_log_error_e */
256
8e39cab6abd5 nginx-0.0.2-2004-02-10-19:23:38 import
Igor Sysoev <igor@sysoev.ru>
parents: 253
diff changeset
172
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 393
diff changeset
173 unsigned timedout:1;
583
4e296b7d25bf nginx-0.3.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
174 unsigned error:1;
4e296b7d25bf nginx-0.3.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
175 unsigned destroyed:1;
452
23fb87bddda1 nginx-0.1.1-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
176
1135
03f1133f24e8 close keep-alive connections in the shuting down processes
Igor Sysoev <igor@sysoev.ru>
parents: 829
diff changeset
177 unsigned idle:1;
3880
e3cb8e27e413 reuse keepalive connections if there are no free worker connections
Igor Sysoev <igor@sysoev.ru>
parents: 3676
diff changeset
178 unsigned reusable:1;
1135
03f1133f24e8 close keep-alive connections in the shuting down processes
Igor Sysoev <igor@sysoev.ru>
parents: 829
diff changeset
179 unsigned close:1;
6436
8f038068f4bc Stream: UDP proxy.
Roman Arutyunyan <arut@nginx.com>
parents: 6246
diff changeset
180 unsigned shared:1;
1135
03f1133f24e8 close keep-alive connections in the shuting down processes
Igor Sysoev <igor@sysoev.ru>
parents: 829
diff changeset
181
452
23fb87bddda1 nginx-0.1.1-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
182 unsigned sendfile:1;
23fb87bddda1 nginx-0.1.1-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
183 unsigned sndlowat:1;
483
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
184 unsigned tcp_nodelay:2; /* ngx_connection_tcp_nodelay_e */
621229427cba nginx-0.1.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
185 unsigned tcp_nopush:2; /* ngx_connection_tcp_nopush_e */
452
23fb87bddda1 nginx-0.1.1-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
186
5513
311803b21504 SPDY: body filter was replaced by c->send_chain() function.
Valentin Bartenev <vbart@nginx.com>
parents: 5498
diff changeset
187 unsigned need_last_buf:1;
311803b21504 SPDY: body filter was replaced by c->send_chain() function.
Valentin Bartenev <vbart@nginx.com>
parents: 5498
diff changeset
188
6734
0c572ed91b36 Modules compatibility: compatibility with NGX_HAVE_FILE_AIO.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6733
diff changeset
189 #if (NGX_HAVE_AIO_SENDFILE || NGX_COMPAT)
5498
d39a69427056 Allowed up to two EBUSY errors from sendfile().
Maxim Dounin <mdounin@mdounin.ru>
parents: 5463
diff changeset
190 unsigned busy_count:2;
3065
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 2888
diff changeset
191 #endif
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 2888
diff changeset
192
6733
adc2414856b1 Modules compatibility: compatibility with NGX_THREADS.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6721
diff changeset
193 #if (NGX_THREADS || NGX_COMPAT)
6023
b550563ef96e Added support for offloading Linux sendfile() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents: 6016
diff changeset
194 ngx_thread_task_t *sendfile_task;
b550563ef96e Added support for offloading Linux sendfile() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents: 6016
diff changeset
195 #endif
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
196 };
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
197
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
198
6129
187aa751ad62 Core: the ngx_set_connection_log() macro.
Vladimir Homutov <vl@nginx.com>
parents: 6031
diff changeset
199 #define ngx_set_connection_log(c, l) \
187aa751ad62 Core: the ngx_set_connection_log() macro.
Vladimir Homutov <vl@nginx.com>
parents: 6031
diff changeset
200 \
187aa751ad62 Core: the ngx_set_connection_log() macro.
Vladimir Homutov <vl@nginx.com>
parents: 6031
diff changeset
201 c->log->file = l->file; \
187aa751ad62 Core: the ngx_set_connection_log() macro.
Vladimir Homutov <vl@nginx.com>
parents: 6031
diff changeset
202 c->log->next = l->next; \
187aa751ad62 Core: the ngx_set_connection_log() macro.
Vladimir Homutov <vl@nginx.com>
parents: 6031
diff changeset
203 c->log->writer = l->writer; \
187aa751ad62 Core: the ngx_set_connection_log() macro.
Vladimir Homutov <vl@nginx.com>
parents: 6031
diff changeset
204 c->log->wdata = l->wdata; \
187aa751ad62 Core: the ngx_set_connection_log() macro.
Vladimir Homutov <vl@nginx.com>
parents: 6031
diff changeset
205 if (!(c->log->log_level & NGX_LOG_DEBUG_CONNECTION)) { \
187aa751ad62 Core: the ngx_set_connection_log() macro.
Vladimir Homutov <vl@nginx.com>
parents: 6031
diff changeset
206 c->log->log_level = l->log_level; \
187aa751ad62 Core: the ngx_set_connection_log() macro.
Vladimir Homutov <vl@nginx.com>
parents: 6031
diff changeset
207 }
187aa751ad62 Core: the ngx_set_connection_log() macro.
Vladimir Homutov <vl@nginx.com>
parents: 6031
diff changeset
208
187aa751ad62 Core: the ngx_set_connection_log() macro.
Vladimir Homutov <vl@nginx.com>
parents: 6031
diff changeset
209
6555
090a78da4f88 Belatedly changed the ngx_create_listening() prototype.
Ruslan Ermilov <ru@nginx.com>
parents: 6532
diff changeset
210 ngx_listening_t *ngx_create_listening(ngx_conf_t *cf, struct sockaddr *sockaddr,
2806
a445bd4eb571 ngx_create_listening()
Igor Sysoev <igor@sysoev.ru>
parents: 2802
diff changeset
211 socklen_t socklen);
7315
e7b2b907c0f8 Events: moved sockets cloning to ngx_event_init_conf().
Maxim Dounin <mdounin@mdounin.ru>
parents: 7286
diff changeset
212 ngx_int_t ngx_clone_listening(ngx_cycle_t *cycle, ngx_listening_t *ls);
219
f57597ec5249 nginx-0.0.1-2004-01-06-19:49:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 218
diff changeset
213 ngx_int_t ngx_set_inherited_sockets(ngx_cycle_t *cycle);
218
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 216
diff changeset
214 ngx_int_t ngx_open_listening_sockets(ngx_cycle_t *cycle);
2802
44b2081c015a use correct name
Igor Sysoev <igor@sysoev.ru>
parents: 2800
diff changeset
215 void ngx_configure_listening_sockets(ngx_cycle_t *cycle);
218
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 216
diff changeset
216 void ngx_close_listening_sockets(ngx_cycle_t *cycle);
417
0526206251f6 nginx-0.0.10-2004-09-07-19:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 399
diff changeset
217 void ngx_close_connection(ngx_connection_t *c);
6220
5e6142609e48 Core: idle connections now closed only once on exiting.
Valentin Bartenev <vbart@nginx.com>
parents: 6153
diff changeset
218 void ngx_close_idle_connections(ngx_cycle_t *cycle);
2854
d788477f5a67 ngx_connection_local_sockaddr()
Igor Sysoev <igor@sysoev.ru>
parents: 2806
diff changeset
219 ngx_int_t ngx_connection_local_sockaddr(ngx_connection_t *c, ngx_str_t *s,
d788477f5a67 ngx_connection_local_sockaddr()
Igor Sysoev <igor@sysoev.ru>
parents: 2806
diff changeset
220 ngx_uint_t port);
7007
ed1101bbf19f Introduced ngx_tcp_nodelay().
Ruslan Ermilov <ru@nginx.com>
parents: 6735
diff changeset
221 ngx_int_t ngx_tcp_nodelay(ngx_connection_t *c);
253
b6793bc5034b nginx-0.0.2-2004-02-09-10:46:43 import
Igor Sysoev <igor@sysoev.ru>
parents: 219
diff changeset
222 ngx_int_t ngx_connection_error(ngx_connection_t *c, ngx_err_t err, char *text);
218
05592fd7a436 nginx-0.0.1-2004-01-05-23:55:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 216
diff changeset
223
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
224 ngx_connection_t *ngx_get_connection(ngx_socket_t s, ngx_log_t *log);
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 539
diff changeset
225 void ngx_free_connection(ngx_connection_t *c);
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
226
3880
e3cb8e27e413 reuse keepalive connections if there are no free worker connections
Igor Sysoev <igor@sysoev.ru>
parents: 3676
diff changeset
227 void ngx_reusable_connection(ngx_connection_t *c, ngx_uint_t reusable);
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 87
diff changeset
228
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
229 #endif /* _NGX_CONNECTION_H_INCLUDED_ */