annotate src/os/win32/ngx_socket.h @ 7444:4089b3d2cb59

Win32: added WSAPoll() support. WSAPoll() is only available with Windows Vista and newer (and only available during compilation if _WIN32_WINNT >= 0x0600). To make sure the code works with Windows XP, we do not redefine _WIN32_WINNT, but instead load WSAPoll() dynamically if it is not available during compilation. Also, sockets are not guaranteed to be small integers on Windows. So an index array is used instead of NGX_USE_FD_EVENT to map events to connections.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 24 Jan 2019 21:51:21 +0300
parents 2a621245f4cf
children efd71d49bde0
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: 294
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: 294
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: 1679
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: 294
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: 294
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: 294
diff changeset
7
2
ffffe1499bce nginx-0.0.1-2002-08-16-19:27:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 #ifndef _NGX_SOCKET_H_INCLUDED_
ffffe1499bce nginx-0.0.1-2002-08-16-19:27:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 #define _NGX_SOCKET_H_INCLUDED_
ffffe1499bce nginx-0.0.1-2002-08-16-19:27:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
ffffe1499bce nginx-0.0.1-2002-08-16-19:27:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
ffffe1499bce nginx-0.0.1-2002-08-16-19:27:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 #include <ngx_config.h>
100
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 59
diff changeset
13 #include <ngx_core.h>
7ebc8b7fb816 nginx-0.0.1-2003-06-03-19:42:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 59
diff changeset
14
2
ffffe1499bce nginx-0.0.1-2002-08-16-19:27:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15
13
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 8
diff changeset
16 #define NGX_WRITE_SHUTDOWN SD_SEND
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 8
diff changeset
17
8
708f8bb772ec nginx-0.0.1-2002-09-02-18:48:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 6
diff changeset
18
3
34a521b1a148 nginx-0.0.1-2002-08-20-18:48:28 import
Igor Sysoev <igor@sysoev.ru>
parents: 2
diff changeset
19 typedef SOCKET ngx_socket_t;
8
708f8bb772ec nginx-0.0.1-2002-09-02-18:48:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 6
diff changeset
20 typedef int socklen_t;
2
ffffe1499bce nginx-0.0.1-2002-08-16-19:27:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
21
ffffe1499bce nginx-0.0.1-2002-08-16-19:27:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
22
1633
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
23 #define ngx_socket(af, type, proto) \
6230
2a621245f4cf Win32: MSVC 2015 compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
24 WSASocketW(af, type, proto, NULL, 0, WSA_FLAG_OVERLAPPED)
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 100
diff changeset
25
6230
2a621245f4cf Win32: MSVC 2015 compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
26 #define ngx_socket_n "WSASocketW()"
6
669801705ab1 nginx-0.0.1-2002-08-26-19:18:19 import
Igor Sysoev <igor@sysoev.ru>
parents: 3
diff changeset
27
8
708f8bb772ec nginx-0.0.1-2002-09-02-18:48:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 6
diff changeset
28 int ngx_nonblocking(ngx_socket_t s);
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 13
diff changeset
29 int ngx_blocking(ngx_socket_t s);
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 13
diff changeset
30
6
669801705ab1 nginx-0.0.1-2002-08-26-19:18:19 import
Igor Sysoev <igor@sysoev.ru>
parents: 3
diff changeset
31 #define ngx_nonblocking_n "ioctlsocket(FIONBIO)"
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 13
diff changeset
32 #define ngx_blocking_n "ioctlsocket(!FIONBIO)"
2
ffffe1499bce nginx-0.0.1-2002-08-16-19:27:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
33
13
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 8
diff changeset
34 #define ngx_shutdown_socket shutdown
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 8
diff changeset
35 #define ngx_shutdown_socket_n "shutdown()"
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 8
diff changeset
36
3
34a521b1a148 nginx-0.0.1-2002-08-20-18:48:28 import
Igor Sysoev <igor@sysoev.ru>
parents: 2
diff changeset
37 #define ngx_close_socket closesocket
6
669801705ab1 nginx-0.0.1-2002-08-26-19:18:19 import
Igor Sysoev <igor@sysoev.ru>
parents: 3
diff changeset
38 #define ngx_close_socket_n "closesocket()"
2
ffffe1499bce nginx-0.0.1-2002-08-16-19:27:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
39
ffffe1499bce nginx-0.0.1-2002-08-16-19:27:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
40
282
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
41 #ifndef WSAID_ACCEPTEX
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
42
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
43 typedef BOOL (PASCAL FAR * LPFN_ACCEPTEX)(
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
44 IN SOCKET sListenSocket,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
45 IN SOCKET sAcceptSocket,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
46 IN PVOID lpOutputBuffer,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
47 IN DWORD dwReceiveDataLength,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
48 IN DWORD dwLocalAddressLength,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
49 IN DWORD dwRemoteAddressLength,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
50 OUT LPDWORD lpdwBytesReceived,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
51 IN LPOVERLAPPED lpOverlapped
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
52 );
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
53
1633
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
54 #define WSAID_ACCEPTEX \
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
55 {0xb5367df1,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
282
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
56
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
57 #endif
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
58
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
59
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
60 #ifndef WSAID_GETACCEPTEXSOCKADDRS
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
61
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
62 typedef VOID (PASCAL FAR * LPFN_GETACCEPTEXSOCKADDRS)(
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
63 IN PVOID lpOutputBuffer,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
64 IN DWORD dwReceiveDataLength,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
65 IN DWORD dwLocalAddressLength,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
66 IN DWORD dwRemoteAddressLength,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
67 OUT struct sockaddr **LocalSockaddr,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
68 OUT LPINT LocalSockaddrLength,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
69 OUT struct sockaddr **RemoteSockaddr,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
70 OUT LPINT RemoteSockaddrLength
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
71 );
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
72
1633
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
73 #define WSAID_GETACCEPTEXSOCKADDRS \
282
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
74 {0xb5367df2,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
75
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
76 #endif
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
77
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
78
1633
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
79 #ifndef WSAID_TRANSMITFILE
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
80
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
81 #ifndef TF_DISCONNECT
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
82
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
83 #define TF_DISCONNECT 1
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
84 #define TF_REUSE_SOCKET 2
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
85 #define TF_WRITE_BEHIND 4
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
86 #define TF_USE_DEFAULT_WORKER 0
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
87 #define TF_USE_SYSTEM_THREAD 16
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
88 #define TF_USE_KERNEL_APC 32
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
89
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
90 typedef struct _TRANSMIT_FILE_BUFFERS {
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
91 LPVOID Head;
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
92 DWORD HeadLength;
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
93 LPVOID Tail;
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
94 DWORD TailLength;
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
95 } TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, FAR *LPTRANSMIT_FILE_BUFFERS;
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
96
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
97 #endif
282
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
98
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
99 typedef BOOL (PASCAL FAR * LPFN_TRANSMITFILE)(
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
100 IN SOCKET hSocket,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
101 IN HANDLE hFile,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
102 IN DWORD nNumberOfBytesToWrite,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
103 IN DWORD nNumberOfBytesPerSend,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
104 IN LPOVERLAPPED lpOverlapped,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
105 IN LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers,
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
106 IN DWORD dwReserved
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
107 );
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
108
1633
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
109 #define WSAID_TRANSMITFILE \
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
110 {0xb5367df0,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
282
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
111
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
112 #endif
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
113
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
114
1633
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
115 #ifndef WSAID_TRANSMITPACKETS
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
116
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
117 /* OpenWatcom has a swapped TP_ELEMENT_FILE and TP_ELEMENT_MEMORY definition */
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
118
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
119 #ifndef TP_ELEMENT_FILE
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
120
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
121 #ifdef _MSC_VER
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
122 #pragma warning(disable:4201) /* Nonstandard extension, nameless struct/union */
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
123 #endif
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
124
1679
ca317d9b5c09 style fix: remove trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents: 1633
diff changeset
125 typedef struct _TRANSMIT_PACKETS_ELEMENT {
ca317d9b5c09 style fix: remove trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents: 1633
diff changeset
126 ULONG dwElFlags;
1633
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
127 #define TP_ELEMENT_MEMORY 1
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
128 #define TP_ELEMENT_FILE 2
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
129 #define TP_ELEMENT_EOP 4
1679
ca317d9b5c09 style fix: remove trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents: 1633
diff changeset
130 ULONG cLength;
1633
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
131 union {
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
132 struct {
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
133 LARGE_INTEGER nFileOffset;
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
134 HANDLE hFile;
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
135 };
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
136 PVOID pBuffer;
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
137 };
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
138 } TRANSMIT_PACKETS_ELEMENT, *PTRANSMIT_PACKETS_ELEMENT,
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
139 FAR *LPTRANSMIT_PACKETS_ELEMENT;
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
140
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
141 #ifdef _MSC_VER
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
142 #pragma warning(default:4201)
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
143 #endif
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
144
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
145 #endif
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
146
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
147 typedef BOOL (PASCAL FAR * LPFN_TRANSMITPACKETS) (
1679
ca317d9b5c09 style fix: remove trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents: 1633
diff changeset
148 SOCKET hSocket,
ca317d9b5c09 style fix: remove trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents: 1633
diff changeset
149 TRANSMIT_PACKETS_ELEMENT *lpPacketArray,
ca317d9b5c09 style fix: remove trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents: 1633
diff changeset
150 DWORD nElementCount,
ca317d9b5c09 style fix: remove trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents: 1633
diff changeset
151 DWORD nSendSize,
ca317d9b5c09 style fix: remove trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents: 1633
diff changeset
152 LPOVERLAPPED lpOverlapped,
ca317d9b5c09 style fix: remove trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents: 1633
diff changeset
153 DWORD dwFlags
1633
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
154 );
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
155
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
156 #define WSAID_TRANSMITPACKETS \
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
157 {0xd9689da0,0x1f90,0x11d3,{0x99,0x71,0x00,0xc0,0x4f,0x68,0xc8,0x76}}
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
158
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
159 #endif
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
160
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
161
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
162 #ifndef WSAID_CONNECTEX
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
163
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
164 typedef BOOL (PASCAL FAR * LPFN_CONNECTEX) (
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
165 IN SOCKET s,
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
166 IN const struct sockaddr FAR *name,
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
167 IN int namelen,
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
168 IN PVOID lpSendBuffer OPTIONAL,
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
169 IN DWORD dwSendDataLength,
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
170 OUT LPDWORD lpdwBytesSent,
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
171 IN LPOVERLAPPED lpOverlapped
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
172 );
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
173
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
174 #define WSAID_CONNECTEX \
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
175 {0x25a207b9,0xddf3,0x4660,{0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e}}
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
176
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
177 #endif
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
178
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
179
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
180 #ifndef WSAID_DISCONNECTEX
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
181
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
182 typedef BOOL (PASCAL FAR * LPFN_DISCONNECTEX) (
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
183 IN SOCKET s,
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
184 IN LPOVERLAPPED lpOverlapped,
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
185 IN DWORD dwFlags,
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
186 IN DWORD dwReserved
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
187 );
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
188
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
189 #define WSAID_DISCONNECTEX \
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
190 {0x7fda2e11,0x8630,0x436f,{0xa0,0x31,0xf5,0x36,0xa6,0xee,0xc1,0x57}}
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
191
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
192 #endif
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
193
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
194
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
195 extern LPFN_ACCEPTEX ngx_acceptex;
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
196 extern LPFN_GETACCEPTEXSOCKADDRS ngx_getacceptexsockaddrs;
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
197 extern LPFN_TRANSMITFILE ngx_transmitfile;
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
198 extern LPFN_TRANSMITPACKETS ngx_transmitpackets;
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
199 extern LPFN_CONNECTEX ngx_connectex;
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
200 extern LPFN_DISCONNECTEX ngx_disconnectex;
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 13
diff changeset
201
8
708f8bb772ec nginx-0.0.1-2002-09-02-18:48:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 6
diff changeset
202
7444
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
203 #if (NGX_HAVE_POLL && !defined POLLIN)
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
204
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
205 /*
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
206 * WSAPoll() is only available if _WIN32_WINNT >= 0x0600.
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
207 * If it is not available during compilation, we try to
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
208 * load it dynamically at runtime.
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
209 */
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
210
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
211 #define NGX_LOAD_WSAPOLL 1
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
212
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
213 #define POLLRDNORM 0x0100
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
214 #define POLLRDBAND 0x0200
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
215 #define POLLIN (POLLRDNORM | POLLRDBAND)
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
216 #define POLLPRI 0x0400
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
217
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
218 #define POLLWRNORM 0x0010
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
219 #define POLLOUT (POLLWRNORM)
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
220 #define POLLWRBAND 0x0020
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
221
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
222 #define POLLERR 0x0001
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
223 #define POLLHUP 0x0002
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
224 #define POLLNVAL 0x0004
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
225
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
226 typedef struct pollfd {
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
227
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
228 SOCKET fd;
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
229 SHORT events;
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
230 SHORT revents;
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
231
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
232 } WSAPOLLFD, *PWSAPOLLFD, FAR *LPWSAPOLLFD;
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
233
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
234 typedef int (WSAAPI *ngx_wsapoll_pt)(
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
235 LPWSAPOLLFD fdArray,
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
236 ULONG fds,
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
237 INT timeout
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
238 );
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
239
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
240 extern ngx_wsapoll_pt WSAPoll;
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
241 extern ngx_uint_t ngx_have_wsapoll;
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
242
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
243 #endif
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
244
4089b3d2cb59 Win32: added WSAPoll() support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6230
diff changeset
245
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
246 int ngx_tcp_push(ngx_socket_t s);
1633
74b2a52bc3c9 TransmitPackets(), ConnectEx(), and DisconnectEx()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
247 #define ngx_tcp_push_n "tcp_push()"
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 100
diff changeset
248
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 100
diff changeset
249
2
ffffe1499bce nginx-0.0.1-2002-08-16-19:27:03 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
250 #endif /* _NGX_SOCKET_H_INCLUDED_ */