Mercurial > hg > nginx-quic
annotate src/os/win32/ngx_win32_config.h @ 8910:f3510cb959d1
Events: fixed EPOLLRDHUP with FIONREAD (ticket #2367).
When reading exactly rev->available bytes, rev->available might become 0
after FIONREAD usage introduction in efd71d49bde0. On the next call of
ngx_readv_chain() on systems with EPOLLRDHUP this resulted in return without
any actions, that is, with rev->ready set, and this in turn resulted in no
timers set in event pipe, leading to socket leaks.
Fix is to reset rev->ready in ngx_readv_chain() when returning due to
rev->available being 0 with EPOLLRDHUP, much like it is already done in
ngx_unix_recv(). This ensures that if rev->available will become 0, on
systems with EPOLLRDHUP support appropriate EPOLLRDHUP-specific handling
will happen on the next ngx_readv_chain() call.
While here, also synced ngx_readv_chain() to match ngx_unix_recv() and
reset rev->ready when returning due to rev->available being 0 with kqueue.
This is mostly cosmetic change, as rev->ready is anyway reset when
rev->available is set to 0.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Fri, 15 Jul 2022 15:19:32 +0300 |
parents | efd71d49bde0 |
children | d1aa8cc3e387 |
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:
419
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:
419
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:
419
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:
419
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:
419
diff
changeset
|
7 |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
8 #ifndef _NGX_WIN32_CONFIG_H_INCLUDED_ |
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
9 #define _NGX_WIN32_CONFIG_H_INCLUDED_ |
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
10 |
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
11 |
5360
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5359
diff
changeset
|
12 #undef WIN32 |
563 | 13 #define WIN32 0x0400 |
4218
a10354495767
Recent SDKs allow to build IPV6 only for Windows XP or above.
Igor Sysoev <igor@sysoev.ru>
parents:
3672
diff
changeset
|
14 #define _WIN32_WINNT 0x0501 |
563 | 15 |
16 | |
186
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
17 #define STRICT |
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
18 #define WIN32_LEAN_AND_MEAN |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
19 |
1641
25e2db857b66
enable getenv() and gmtime() in msvc8
Igor Sysoev <igor@sysoev.ru>
parents:
1377
diff
changeset
|
20 /* enable getenv() and gmtime() in msvc8 */ |
25e2db857b66
enable getenv() and gmtime() in msvc8
Igor Sysoev <igor@sysoev.ru>
parents:
1377
diff
changeset
|
21 #define _CRT_SECURE_NO_WARNINGS |
4778
a48031f7a69c
Win32: fixed build with Visual Studio 2005 Express.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4572
diff
changeset
|
22 #define _CRT_SECURE_NO_DEPRECATE |
1641
25e2db857b66
enable getenv() and gmtime() in msvc8
Igor Sysoev <igor@sysoev.ru>
parents:
1377
diff
changeset
|
23 |
6230
2a621245f4cf
Win32: MSVC 2015 compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6113
diff
changeset
|
24 /* enable gethostbyname() in msvc2015 */ |
2a621245f4cf
Win32: MSVC 2015 compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6113
diff
changeset
|
25 #if !(NGX_HAVE_INET6) |
2a621245f4cf
Win32: MSVC 2015 compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6113
diff
changeset
|
26 #define _WINSOCK_DEPRECATED_NO_WARNINGS |
2a621245f4cf
Win32: MSVC 2015 compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6113
diff
changeset
|
27 #endif |
2a621245f4cf
Win32: MSVC 2015 compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6113
diff
changeset
|
28 |
186
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
29 /* |
4572
67653855682e
Fixed spelling in multiline C comments.
Ruslan Ermilov <ru@nginx.com>
parents:
4412
diff
changeset
|
30 * we need to include <windows.h> explicitly before <winsock2.h> because |
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:
419
diff
changeset
|
31 * the warning 4201 is enabled in <windows.h> |
186
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
32 */ |
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
33 #include <windows.h> |
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
34 |
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
35 #ifdef _MSC_VER |
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
36 #pragma warning(disable:4201) |
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
37 #endif |
119
cd54bcbaf3b5
nginx-0.0.1-2003-07-21-01:15:59 import
Igor Sysoev <igor@sysoev.ru>
parents:
93
diff
changeset
|
38 |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
39 #include <winsock2.h> |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2387
diff
changeset
|
40 #include <ws2tcpip.h> /* ipv6 */ |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
41 #include <mswsock.h> |
461 | 42 #include <shellapi.h> |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
186
diff
changeset
|
43 #include <stddef.h> /* offsetof() */ |
5360
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5359
diff
changeset
|
44 |
5886
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
45 #ifdef __MINGW64_VERSION_MAJOR |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
46 |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
47 /* GCC MinGW-w64 supports _FILE_OFFSET_BITS */ |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
48 #define _FILE_OFFSET_BITS 64 |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
49 |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
50 #elif defined __GNUC__ |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
51 |
5360
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5359
diff
changeset
|
52 /* GCC MinGW's stdio.h includes sys/types.h */ |
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5359
diff
changeset
|
53 #define _OFF_T_ |
6856
28a8497bf39c
Win32: fixed building with newer versions of MinGW GCC.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6230
diff
changeset
|
54 #define __have_typedef_off_t |
5886
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
55 |
5360
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5359
diff
changeset
|
56 #endif |
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5359
diff
changeset
|
57 |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
58 #include <stdio.h> |
123
b75602822f64
nginx-0.0.1-2003-07-24-00:01:29 import
Igor Sysoev <igor@sysoev.ru>
parents:
119
diff
changeset
|
59 #include <stdlib.h> |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
60 #include <stdarg.h> |
6857
26d88ec9baf4
Win32: stdint.h used for MinGW GCC.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6856
diff
changeset
|
61 #ifdef __GNUC__ |
5886
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
62 #include <stdint.h> |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
63 #endif |
5389
72e31d88defa
Added ngx_filename_cmp() with "/" sorted to the left.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5360
diff
changeset
|
64 #include <ctype.h> |
3458
bdcae1a576e3
compare long file names in case-insensitive mode,
Igor Sysoev <igor@sysoev.ru>
parents:
2512
diff
changeset
|
65 #include <locale.h> |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
66 |
509 | 67 #ifdef __WATCOMC__ |
68 #define _TIME_T_DEFINED | |
69 typedef long time_t; | |
70 /* OpenWatcom defines time_t as "unsigned long" */ | |
71 #endif | |
72 | |
73 #include <time.h> /* localtime(), strftime() */ | |
74 | |
455 | 75 |
186
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
76 #ifdef _MSC_VER |
455 | 77 |
78 /* the end of the precompiled headers */ | |
79 #pragma hdrstop | |
80 | |
186
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
81 #pragma warning(default:4201) |
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
82 |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
282
diff
changeset
|
83 /* disable some "-W4" level warnings */ |
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
282
diff
changeset
|
84 |
499 | 85 /* 'type cast': from function pointer to data pointer */ |
302
1526e7686b20
nginx-0.0.3-2004-04-01-10:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
297
diff
changeset
|
86 #pragma warning(disable:4054) |
499 | 87 |
88 /* 'type cast': from data pointer to function pointer */ | |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
282
diff
changeset
|
89 #pragma warning(disable:4055) |
363
f2755a2885c8
nginx-0.0.7-2004-06-21-23:22:53 import
Igor Sysoev <igor@sysoev.ru>
parents:
302
diff
changeset
|
90 |
6862
abb0a4189cf7
Win32: compatiblity with OpenSSL 1.1.0.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6861
diff
changeset
|
91 /* 'function' : different 'const' qualifiers */ |
abb0a4189cf7
Win32: compatiblity with OpenSSL 1.1.0.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6861
diff
changeset
|
92 #pragma warning(disable:4090) |
abb0a4189cf7
Win32: compatiblity with OpenSSL 1.1.0.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6861
diff
changeset
|
93 |
186
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
94 /* unreferenced formal parameter */ |
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
95 #pragma warning(disable:4100) |
363
f2755a2885c8
nginx-0.0.7-2004-06-21-23:22:53 import
Igor Sysoev <igor@sysoev.ru>
parents:
302
diff
changeset
|
96 |
501 | 97 /* FD_SET() and FD_CLR(): conditional expression is constant */ |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
282
diff
changeset
|
98 #pragma warning(disable:4127) |
363
f2755a2885c8
nginx-0.0.7-2004-06-21-23:22:53 import
Igor Sysoev <igor@sysoev.ru>
parents:
302
diff
changeset
|
99 |
6861
e4590dfd97ff
Win32: support 64-bit compilation with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6860
diff
changeset
|
100 /* conversion from 'type1' to 'type2', possible loss of data */ |
e4590dfd97ff
Win32: support 64-bit compilation with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6860
diff
changeset
|
101 #pragma warning(disable:4244) |
e4590dfd97ff
Win32: support 64-bit compilation with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6860
diff
changeset
|
102 |
e4590dfd97ff
Win32: support 64-bit compilation with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6860
diff
changeset
|
103 /* conversion from 'size_t' to 'type', possible loss of data */ |
e4590dfd97ff
Win32: support 64-bit compilation with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6860
diff
changeset
|
104 #pragma warning(disable:4267) |
e4590dfd97ff
Win32: support 64-bit compilation with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6860
diff
changeset
|
105 |
5120
7956af6b6a02
Win32: disabled MSVC warning about '\0' not fitting into array.
Valentin Bartenev <vbart@nginx.com>
parents:
4971
diff
changeset
|
106 /* array is too small to include a terminating null character */ |
7956af6b6a02
Win32: disabled MSVC warning about '\0' not fitting into array.
Valentin Bartenev <vbart@nginx.com>
parents:
4971
diff
changeset
|
107 #pragma warning(disable:4295) |
7956af6b6a02
Win32: disabled MSVC warning about '\0' not fitting into array.
Valentin Bartenev <vbart@nginx.com>
parents:
4971
diff
changeset
|
108 |
282
30310107dbc9
nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents:
280
diff
changeset
|
109 #endif |
186
c1f3a3c7c5db
nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
110 |
280
7c7183b3ea8b
nginx-0.0.2-2004-03-05-11:34:24 import
Igor Sysoev <igor@sysoev.ru>
parents:
279
diff
changeset
|
111 |
7c7183b3ea8b
nginx-0.0.2-2004-03-05-11:34:24 import
Igor Sysoev <igor@sysoev.ru>
parents:
279
diff
changeset
|
112 #ifdef __WATCOMC__ |
499 | 113 |
114 /* symbol 'ngx_rbtree_min' has been defined, but not referenced */ | |
280
7c7183b3ea8b
nginx-0.0.2-2004-03-05-11:34:24 import
Igor Sysoev <igor@sysoev.ru>
parents:
279
diff
changeset
|
115 #pragma disable_message(202) |
499 | 116 |
280
7c7183b3ea8b
nginx-0.0.2-2004-03-05-11:34:24 import
Igor Sysoev <igor@sysoev.ru>
parents:
279
diff
changeset
|
117 #endif |
7c7183b3ea8b
nginx-0.0.2-2004-03-05-11:34:24 import
Igor Sysoev <igor@sysoev.ru>
parents:
279
diff
changeset
|
118 |
297
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
294
diff
changeset
|
119 |
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
294
diff
changeset
|
120 #ifdef __BORLANDC__ |
499 | 121 |
297
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
294
diff
changeset
|
122 /* the end of the precompiled headers */ |
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
294
diff
changeset
|
123 #pragma hdrstop |
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
294
diff
changeset
|
124 |
499 | 125 /* functions containing (for|while|some if) are not expanded inline */ |
297
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
294
diff
changeset
|
126 #pragma warn -8027 |
499 | 127 |
128 /* unreferenced formal parameter */ | |
297
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
294
diff
changeset
|
129 #pragma warn -8057 |
499 | 130 |
6860
f18c285c2e59
Win32: fixed some warnings reported by Borland C.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6859
diff
changeset
|
131 /* suspicious pointer arithmetic */ |
f18c285c2e59
Win32: fixed some warnings reported by Borland C.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6859
diff
changeset
|
132 #pragma warn -8072 |
f18c285c2e59
Win32: fixed some warnings reported by Borland C.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6859
diff
changeset
|
133 |
297
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
294
diff
changeset
|
134 #endif |
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
294
diff
changeset
|
135 |
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
294
diff
changeset
|
136 |
278
0ba4821f4460
nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents:
195
diff
changeset
|
137 #include <ngx_auto_config.h> |
0ba4821f4460
nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents:
195
diff
changeset
|
138 |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
139 |
785 | 140 #define ngx_inline __inline |
141 #define ngx_cdecl __cdecl | |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
142 |
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
143 |
279
b79f021a644a
nginx-0.0.2-2004-03-04-19:34:23 import
Igor Sysoev <igor@sysoev.ru>
parents:
278
diff
changeset
|
144 #ifdef _MSC_VER |
785 | 145 typedef unsigned __int32 uint32_t; |
146 typedef __int32 int32_t; | |
147 typedef unsigned __int16 uint16_t; | |
148 #define ngx_libc_cdecl __cdecl | |
499 | 149 |
785 | 150 #elif defined __BORLANDC__ |
151 typedef unsigned __int32 uint32_t; | |
152 typedef __int32 int32_t; | |
153 typedef unsigned __int16 uint16_t; | |
154 #define ngx_libc_cdecl __cdecl | |
155 | |
156 #else /* __WATCOMC__ */ | |
157 typedef unsigned int uint32_t; | |
158 typedef int int32_t; | |
159 typedef unsigned short int uint16_t; | |
503 | 160 #define ngx_libc_cdecl |
161 | |
176
c0552e5ab567
nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents:
144
diff
changeset
|
162 #endif |
278
0ba4821f4460
nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents:
195
diff
changeset
|
163 |
785 | 164 typedef __int64 int64_t; |
165 typedef unsigned __int64 uint64_t; | |
5358
670ceaba03d8
Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5262
diff
changeset
|
166 |
6858
f39ceadf0441
Win32: minimized redefinition of intptr_t/uintptr_t.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6857
diff
changeset
|
167 #if __BORLANDC__ |
1354
f69d1aab6a0f
make 64-bit ngx_int_t on 64-bit platforms
Igor Sysoev <igor@sysoev.ru>
parents:
1025
diff
changeset
|
168 typedef int intptr_t; |
785 | 169 typedef u_int uintptr_t; |
5358
670ceaba03d8
Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5262
diff
changeset
|
170 #endif |
670ceaba03d8
Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5262
diff
changeset
|
171 |
176
c0552e5ab567
nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents:
144
diff
changeset
|
172 |
5886
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
173 #ifndef __MINGW64_VERSION_MAJOR |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
174 |
4219
691133126226
Fixing conflict with SDK off_t definition.
Igor Sysoev <igor@sysoev.ru>
parents:
4218
diff
changeset
|
175 /* Windows defines off_t as long, which is 32-bit */ |
691133126226
Fixing conflict with SDK off_t definition.
Igor Sysoev <igor@sysoev.ru>
parents:
4218
diff
changeset
|
176 typedef __int64 off_t; |
691133126226
Fixing conflict with SDK off_t definition.
Igor Sysoev <igor@sysoev.ru>
parents:
4218
diff
changeset
|
177 #define _OFF_T_DEFINED |
691133126226
Fixing conflict with SDK off_t definition.
Igor Sysoev <igor@sysoev.ru>
parents:
4218
diff
changeset
|
178 |
5886
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
179 #endif |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
180 |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
181 |
5358
670ceaba03d8
Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5262
diff
changeset
|
182 #ifdef __WATCOMC__ |
670ceaba03d8
Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5262
diff
changeset
|
183 |
670ceaba03d8
Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5262
diff
changeset
|
184 /* off_t is redefined by sys/types.h used by zlib.h */ |
670ceaba03d8
Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5262
diff
changeset
|
185 #define __TYPES_H_INCLUDED |
670ceaba03d8
Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5262
diff
changeset
|
186 typedef int dev_t; |
670ceaba03d8
Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5262
diff
changeset
|
187 typedef unsigned int ino_t; |
670ceaba03d8
Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5262
diff
changeset
|
188 |
5359
2fda9065d0f4
Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5358
diff
changeset
|
189 #elif __BORLANDC__ |
2fda9065d0f4
Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5358
diff
changeset
|
190 |
2fda9065d0f4
Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5358
diff
changeset
|
191 /* off_t is redefined by sys/types.h used by zlib.h */ |
2fda9065d0f4
Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5358
diff
changeset
|
192 #define __TYPES_H |
2fda9065d0f4
Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5358
diff
changeset
|
193 |
2fda9065d0f4
Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5358
diff
changeset
|
194 typedef int dev_t; |
2fda9065d0f4
Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5358
diff
changeset
|
195 typedef unsigned int ino_t; |
2fda9065d0f4
Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5358
diff
changeset
|
196 |
5358
670ceaba03d8
Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5262
diff
changeset
|
197 #endif |
670ceaba03d8
Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5262
diff
changeset
|
198 |
670ceaba03d8
Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5262
diff
changeset
|
199 |
6859
38df52d4e250
Win32: minimized redefinition of ssize_t.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6858
diff
changeset
|
200 #ifndef __GNUC__ |
6861
e4590dfd97ff
Win32: support 64-bit compilation with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6860
diff
changeset
|
201 #ifdef _WIN64 |
e4590dfd97ff
Win32: support 64-bit compilation with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6860
diff
changeset
|
202 typedef __int64 ssize_t; |
e4590dfd97ff
Win32: support 64-bit compilation with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6860
diff
changeset
|
203 #else |
785 | 204 typedef int ssize_t; |
5886
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
205 #endif |
6861
e4590dfd97ff
Win32: support 64-bit compilation with MSVC.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6860
diff
changeset
|
206 #endif |
5886
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
207 |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
208 |
785 | 209 typedef uint32_t in_addr_t; |
210 typedef u_short in_port_t; | |
211 typedef int sig_atomic_t; | |
176
c0552e5ab567
nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents:
144
diff
changeset
|
212 |
c0552e5ab567
nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents:
144
diff
changeset
|
213 |
5886
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
214 #ifdef _WIN64 |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
215 |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
216 #define NGX_PTR_SIZE 8 |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
217 #define NGX_SIZE_T_LEN (sizeof("-9223372036854775808") - 1) |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
218 #define NGX_MAX_SIZE_T_VALUE 9223372036854775807 |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
219 #define NGX_TIME_T_LEN (sizeof("-9223372036854775808") - 1) |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
220 #define NGX_TIME_T_SIZE 8 |
6008
b92d5a26d55f
Core: expose maximum values of time_t and ngx_int_t.
Ruslan Ermilov <ru@nginx.com>
parents:
5886
diff
changeset
|
221 #define NGX_MAX_TIME_T_VALUE 9223372036854775807 |
5886
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
222 |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
223 #else |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
224 |
613 | 225 #define NGX_PTR_SIZE 4 |
5262 | 226 #define NGX_SIZE_T_LEN (sizeof("-2147483648") - 1) |
1025 | 227 #define NGX_MAX_SIZE_T_VALUE 2147483647 |
5262 | 228 #define NGX_TIME_T_LEN (sizeof("-2147483648") - 1) |
477 | 229 #define NGX_TIME_T_SIZE 4 |
6008
b92d5a26d55f
Core: expose maximum values of time_t and ngx_int_t.
Ruslan Ermilov <ru@nginx.com>
parents:
5886
diff
changeset
|
230 #define NGX_MAX_TIME_T_VALUE 2147483647 |
5886
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
231 |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
232 #endif |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
233 |
5d4e4619982f
Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents:
5389
diff
changeset
|
234 |
5262 | 235 #define NGX_OFF_T_LEN (sizeof("-9223372036854775807") - 1) |
477 | 236 #define NGX_MAX_OFF_T_VALUE 9223372036854775807 |
237 #define NGX_SIG_ATOMIC_T_SIZE 4 | |
238 | |
581 | 239 |
469 | 240 #define NGX_HAVE_LITTLE_ENDIAN 1 |
479 | 241 #define NGX_HAVE_NONALIGNED 1 |
469 | 242 |
461 | 243 |
244 #define NGX_WIN_NT 200000 | |
176
c0552e5ab567
nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents:
144
diff
changeset
|
245 |
c0552e5ab567
nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents:
144
diff
changeset
|
246 |
1377
0d57c150115b
set default listen() backlog to 511 on all platforms except FreeBSD
Igor Sysoev <igor@sysoev.ru>
parents:
1354
diff
changeset
|
247 #define NGX_LISTEN_BACKLOG 511 |
0d57c150115b
set default listen() backlog to 511 on all platforms except FreeBSD
Igor Sysoev <igor@sysoev.ru>
parents:
1354
diff
changeset
|
248 |
0d57c150115b
set default listen() backlog to 511 on all platforms except FreeBSD
Igor Sysoev <igor@sysoev.ru>
parents:
1354
diff
changeset
|
249 |
469 | 250 #ifndef NGX_HAVE_INHERITED_NONBLOCK |
251 #define NGX_HAVE_INHERITED_NONBLOCK 1 | |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
252 #endif |
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
253 |
5389
72e31d88defa
Added ngx_filename_cmp() with "/" sorted to the left.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5360
diff
changeset
|
254 #ifndef NGX_HAVE_CASELESS_FILESYSTEM |
72e31d88defa
Added ngx_filename_cmp() with "/" sorted to the left.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5360
diff
changeset
|
255 #define NGX_HAVE_CASELESS_FILESYSTEM 1 |
72e31d88defa
Added ngx_filename_cmp() with "/" sorted to the left.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5360
diff
changeset
|
256 #endif |
72e31d88defa
Added ngx_filename_cmp() with "/" sorted to the left.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5360
diff
changeset
|
257 |
469 | 258 #ifndef NGX_HAVE_WIN32_TRANSMITPACKETS |
259 #define NGX_HAVE_WIN32_TRANSMITPACKETS 1 | |
260 #define NGX_HAVE_WIN32_TRANSMITFILE 0 | |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
261 #endif |
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
262 |
469 | 263 #ifndef NGX_HAVE_WIN32_TRANSMITFILE |
264 #define NGX_HAVE_WIN32_TRANSMITFILE 1 | |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
265 #endif |
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
266 |
469 | 267 #if (NGX_HAVE_WIN32_TRANSMITPACKETS) || (NGX_HAVE_WIN32_TRANSMITFILE) |
268 #define NGX_HAVE_SENDFILE 1 | |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
269 #endif |
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
270 |
473 | 271 #ifndef NGX_HAVE_SO_SNDLOWAT |
272 /* setsockopt(SO_SNDLOWAT) returns error WSAENOPROTOOPT */ | |
273 #define NGX_HAVE_SO_SNDLOWAT 0 | |
274 #endif | |
275 | |
7583
efd71d49bde0
Events: available bytes calculation via ioctl(FIONREAD).
Maxim Dounin <mdounin@mdounin.ru>
parents:
6862
diff
changeset
|
276 #ifndef NGX_HAVE_FIONREAD |
efd71d49bde0
Events: available bytes calculation via ioctl(FIONREAD).
Maxim Dounin <mdounin@mdounin.ru>
parents:
6862
diff
changeset
|
277 #define NGX_HAVE_FIONREAD 1 |
efd71d49bde0
Events: available bytes calculation via ioctl(FIONREAD).
Maxim Dounin <mdounin@mdounin.ru>
parents:
6862
diff
changeset
|
278 #endif |
efd71d49bde0
Events: available bytes calculation via ioctl(FIONREAD).
Maxim Dounin <mdounin@mdounin.ru>
parents:
6862
diff
changeset
|
279 |
4971
eaf95350d75c
Implemented IPv6 support for URLs specified using domain names.
Ruslan Ermilov <ru@nginx.com>
parents:
4778
diff
changeset
|
280 #define NGX_HAVE_GETADDRINFO 1 |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
281 |
800 | 282 #define ngx_random rand |
4223
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
4219
diff
changeset
|
283 #define ngx_debug_init() |
800 | 284 |
285 | |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
286 #endif /* _NGX_WIN32_CONFIG_H_INCLUDED_ */ |