0
|
1
|
|
2 /*
|
|
3 * Copyright (C) Igor Sysoev
|
660
|
4 * Copyright (C) Nginx, Inc.
|
0
|
5 */
|
|
6
|
|
7
|
|
8 #ifndef _NGX_SOCKET_H_INCLUDED_
|
|
9 #define _NGX_SOCKET_H_INCLUDED_
|
|
10
|
|
11
|
|
12 #include <ngx_config.h>
|
|
13
|
|
14
|
|
15 #define NGX_WRITE_SHUTDOWN SHUT_WR
|
|
16
|
|
17 typedef int ngx_socket_t;
|
|
18
|
10
|
19 #define ngx_socket socket
|
0
|
20 #define ngx_socket_n "socket()"
|
|
21
|
|
22
|
18
|
23 #if (NGX_HAVE_FIONBIO)
|
0
|
24
|
|
25 int ngx_nonblocking(ngx_socket_t s);
|
|
26 int ngx_blocking(ngx_socket_t s);
|
|
27
|
|
28 #define ngx_nonblocking_n "ioctl(FIONBIO)"
|
|
29 #define ngx_blocking_n "ioctl(!FIONBIO)"
|
|
30
|
|
31 #else
|
|
32
|
194
|
33 #define ngx_nonblocking(s) fcntl(s, F_SETFL, fcntl(s, F_GETFL) | O_NONBLOCK)
|
0
|
34 #define ngx_nonblocking_n "fcntl(O_NONBLOCK)"
|
|
35
|
194
|
36 #define ngx_blocking(s) fcntl(s, F_SETFL, fcntl(s, F_GETFL) & ~O_NONBLOCK)
|
|
37 #define ngx_blocking_n "fcntl(!O_NONBLOCK)"
|
|
38
|
0
|
39 #endif
|
|
40
|
|
41 int ngx_tcp_nopush(ngx_socket_t s);
|
|
42 int ngx_tcp_push(ngx_socket_t s);
|
|
43
|
4
|
44 #if (NGX_LINUX)
|
0
|
45
|
|
46 #define ngx_tcp_nopush_n "setsockopt(TCP_CORK)"
|
|
47 #define ngx_tcp_push_n "setsockopt(!TCP_CORK)"
|
|
48
|
|
49 #else
|
|
50
|
|
51 #define ngx_tcp_nopush_n "setsockopt(TCP_NOPUSH)"
|
|
52 #define ngx_tcp_push_n "setsockopt(!TCP_NOPUSH)"
|
|
53
|
|
54 #endif
|
|
55
|
|
56
|
|
57 #define ngx_shutdown_socket shutdown
|
|
58 #define ngx_shutdown_socket_n "shutdown()"
|
|
59
|
|
60 #define ngx_close_socket close
|
14
|
61 #define ngx_close_socket_n "close() socket"
|
0
|
62
|
|
63
|
|
64 #endif /* _NGX_SOCKET_H_INCLUDED_ */
|