annotate src/core/nginx.h @ 8743:5d09596909c6 stable-1.20

Upstream: fixed timeouts with gRPC, SSL and select (ticket #2229). With SSL it is possible that an established connection is ready for reading after the handshake. Further, events might be already disabled in case of level-triggered event methods. If this happens and ngx_http_upstream_send_request() blocks waiting for some data from the upstream, such as flow control in case of gRPC, the connection will time out due to no read events on the upstream connection. Fix is to explicitly check the c->read->ready flag if sending request blocks and post a read event if it is set. Note that while it is possible to modify ngx_ssl_handshake() to keep read events active, this won't completely resolve the issue, since there can be data already received during the SSL handshake (see 573bd30e46b4).
author Maxim Dounin <mdounin@mdounin.ru>
date Fri, 20 Aug 2021 03:53:56 +0300
parents e9a98fb95c48
children
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: 440
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: 440
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: 4410
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: 440
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: 440
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: 440
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 _NGINX_H_INCLUDED_
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 #define _NGINX_H_INCLUDED_
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
8731
e9a98fb95c48 Version bump.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8478
diff changeset
12 #define nginx_version 1020002
e9a98fb95c48 Version bump.
Maxim Dounin <mdounin@mdounin.ru>
parents: 8478
diff changeset
13 #define NGINX_VERSION "1.20.2"
775
a452a0e13539 check nginx.pm version
Igor Sysoev <igor@sysoev.ru>
parents: 770
diff changeset
14 #define NGINX_VER "nginx/" NGINX_VERSION
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15
5701
1209b8a7b077 Configure: the --build= option.
Ruslan Ermilov <ru@nginx.com>
parents: 5675
diff changeset
16 #ifdef NGX_BUILD
1209b8a7b077 Configure: the --build= option.
Ruslan Ermilov <ru@nginx.com>
parents: 5675
diff changeset
17 #define NGINX_VER_BUILD NGINX_VER " (" NGX_BUILD ")"
1209b8a7b077 Configure: the --build= option.
Ruslan Ermilov <ru@nginx.com>
parents: 5675
diff changeset
18 #else
1209b8a7b077 Configure: the --build= option.
Ruslan Ermilov <ru@nginx.com>
parents: 5675
diff changeset
19 #define NGINX_VER_BUILD NGINX_VER
1209b8a7b077 Configure: the --build= option.
Ruslan Ermilov <ru@nginx.com>
parents: 5675
diff changeset
20 #endif
1209b8a7b077 Configure: the --build= option.
Ruslan Ermilov <ru@nginx.com>
parents: 5675
diff changeset
21
282
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 266
diff changeset
22 #define NGINX_VAR "NGINX"
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 541
diff changeset
23 #define NGX_OLDPID_EXT ".oldbin"
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 2
diff changeset
24
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 2
diff changeset
25
0
4eff17414a43 nginx-0.0.1-2002-08-06-20:39:45 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
26 #endif /* _NGINX_H_INCLUDED_ */