Mercurial > hg > nginx-quic
annotate src/os/unix/ngx_darwin_init.c @ 4500:9dfe02dd0f11
Added msleep() on reload to allow new processes to start.
This is expected to ensure smoother operation on reload (and with less
chance of listen queue overflows).
Prodded by Igor Sysoev.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 28 Feb 2012 11:40:18 +0000 |
parents | d620f497c50f |
children | 15a7deeaa19a |
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:
437
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:
437
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:
437
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:
437
diff
changeset
|
6 |
86
3973260705cc
nginx-0.0.1-2003-05-12-19:52:24 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
7 |
183
4c698194c56d
nginx-0.0.1-2003-11-13-19:16:33 import
Igor Sysoev <igor@sysoev.ru>
parents:
152
diff
changeset
|
8 #include <ngx_config.h> |
4c698194c56d
nginx-0.0.1-2003-11-13-19:16:33 import
Igor Sysoev <igor@sysoev.ru>
parents:
152
diff
changeset
|
9 #include <ngx_core.h> |
86
3973260705cc
nginx-0.0.1-2003-05-12-19:52:24 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
10 |
3973260705cc
nginx-0.0.1-2003-05-12-19:52:24 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
11 |
2128
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
12 char ngx_darwin_kern_ostype[16]; |
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
13 char ngx_darwin_kern_osrelease[128]; |
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
14 int ngx_darwin_hw_ncpu; |
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
15 int ngx_darwin_kern_ipc_somaxconn; |
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
16 u_long ngx_darwin_net_inet_tcp_sendspace; |
97
70d2345a903f
nginx-0.0.1-2003-05-29-17:02:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
94
diff
changeset
|
17 |
4223
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
18 ngx_uint_t ngx_debug_malloc; |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
19 |
86
3973260705cc
nginx-0.0.1-2003-05-12-19:52:24 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
20 |
2128
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
21 static ngx_os_io_t ngx_darwin_io = { |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
88
diff
changeset
|
22 ngx_unix_recv, |
93
738fe44c70d5
nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
91
diff
changeset
|
23 ngx_readv_chain, |
1689 | 24 ngx_udp_unix_recv, |
417
0526206251f6
nginx-0.0.10-2004-09-07-19:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
391
diff
changeset
|
25 ngx_unix_send, |
469 | 26 #if (NGX_HAVE_SENDFILE) |
2128
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
27 ngx_darwin_sendfile_chain, |
196
11fbd0fc041d
nginx-0.0.1-2003-11-26-18:42:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
195
diff
changeset
|
28 NGX_IO_SENDFILE |
144
ef8c87afcfc5
nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
143
diff
changeset
|
29 #else |
ef8c87afcfc5
nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
143
diff
changeset
|
30 ngx_writev_chain, |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
183
diff
changeset
|
31 0 |
144
ef8c87afcfc5
nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents:
143
diff
changeset
|
32 #endif |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
88
diff
changeset
|
33 }; |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
88
diff
changeset
|
34 |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
88
diff
changeset
|
35 |
97
70d2345a903f
nginx-0.0.1-2003-05-29-17:02:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
94
diff
changeset
|
36 typedef struct { |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
37 char *name; |
673 | 38 void *value; |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
39 size_t size; |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
40 ngx_uint_t exists; |
97
70d2345a903f
nginx-0.0.1-2003-05-29-17:02:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
94
diff
changeset
|
41 } sysctl_t; |
70d2345a903f
nginx-0.0.1-2003-05-29-17:02:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
94
diff
changeset
|
42 |
70d2345a903f
nginx-0.0.1-2003-05-29-17:02:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
94
diff
changeset
|
43 |
70d2345a903f
nginx-0.0.1-2003-05-29-17:02:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
94
diff
changeset
|
44 sysctl_t sysctls[] = { |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
45 { "hw.ncpu", |
2128
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
46 &ngx_darwin_hw_ncpu, |
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
47 sizeof(ngx_darwin_hw_ncpu), 0 }, |
373
018569a8f09c
nginx-0.0.7-2004-06-30-19:30:41 import
Igor Sysoev <igor@sysoev.ru>
parents:
361
diff
changeset
|
48 |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
49 { "net.inet.tcp.sendspace", |
2128
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
50 &ngx_darwin_net_inet_tcp_sendspace, |
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
51 sizeof(ngx_darwin_net_inet_tcp_sendspace), 0 }, |
99
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
97
diff
changeset
|
52 |
501 | 53 { "kern.ipc.somaxconn", |
2128
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
54 &ngx_darwin_kern_ipc_somaxconn, |
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
55 sizeof(ngx_darwin_kern_ipc_somaxconn), 0 }, |
97
70d2345a903f
nginx-0.0.1-2003-05-29-17:02:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
94
diff
changeset
|
56 |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
57 { NULL, NULL, 0, 0 } |
97
70d2345a903f
nginx-0.0.1-2003-05-29-17:02:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
94
diff
changeset
|
58 }; |
70d2345a903f
nginx-0.0.1-2003-05-29-17:02:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
94
diff
changeset
|
59 |
70d2345a903f
nginx-0.0.1-2003-05-29-17:02:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
94
diff
changeset
|
60 |
4223
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
61 void |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
62 ngx_debug_init() |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
63 { |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
64 #if (NGX_DEBUG_MALLOC) |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
65 |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
66 /* |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
67 * MacOSX 10.6, 10.7: MallocScribble fills freed memory with 0x55 |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
68 * and fills allocated memory with 0xAA. |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
69 * MacOSX 10.4, 10.5: MallocScribble fills freed memory with 0x55, |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
70 * MallocPreScribble fills allocated memory with 0xAA. |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
71 * MacOSX 10.3: MallocScribble fills freed memory with 0x55, |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
72 * and no way to fill allocated memory. |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
73 */ |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
74 |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
75 setenv("MallocScribble", "1", 0); |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
76 |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
77 ngx_debug_malloc = 1; |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
78 |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
79 #else |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
80 |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
81 if (getenv("MallocScribble")) { |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
82 ngx_debug_malloc = 1; |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
83 } |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
84 |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
85 #endif |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
86 } |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
87 |
1b779cb69dc8
malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents:
2303
diff
changeset
|
88 |
539 | 89 ngx_int_t |
90 ngx_os_specific_init(ngx_log_t *log) | |
86
3973260705cc
nginx-0.0.1-2003-05-12-19:52:24 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
91 { |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
92 size_t size; |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
93 ngx_err_t err; |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
94 ngx_uint_t i; |
86
3973260705cc
nginx-0.0.1-2003-05-12-19:52:24 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
95 |
2128
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
96 size = sizeof(ngx_darwin_kern_ostype); |
2303
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
97 if (sysctlbyname("kern.ostype", ngx_darwin_kern_ostype, &size, NULL, 0) |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
98 == -1) |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
99 { |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
100 err = ngx_errno; |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
101 |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
102 if (err != NGX_ENOENT) { |
461 | 103 |
2303
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
104 ngx_log_error(NGX_LOG_ALERT, log, err, |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
105 "sysctlbyname(kern.ostype) failed"); |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
106 |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
107 if (err != NGX_ENOMEM) { |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
108 return NGX_ERROR; |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
109 } |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
110 |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
111 ngx_darwin_kern_ostype[size - 1] = '\0'; |
461 | 112 } |
88
674d333f4296
nginx-0.0.1-2003-05-14-21:13:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
86
diff
changeset
|
113 } |
674d333f4296
nginx-0.0.1-2003-05-14-21:13:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
86
diff
changeset
|
114 |
2128
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
115 size = sizeof(ngx_darwin_kern_osrelease); |
2303
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
116 if (sysctlbyname("kern.osrelease", ngx_darwin_kern_osrelease, &size, |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
117 NULL, 0) |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
118 == -1) |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
119 { |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
120 err = ngx_errno; |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
121 |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
122 if (err != NGX_ENOENT) { |
461 | 123 |
2303
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
124 ngx_log_error(NGX_LOG_ALERT, log, err, |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
125 "sysctlbyname(kern.osrelease) failed"); |
461 | 126 |
2303
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
127 if (err != NGX_ENOMEM) { |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
128 return NGX_ERROR; |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
129 } |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
130 |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
131 ngx_darwin_kern_osrelease[size - 1] = '\0'; |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
132 } |
99
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
97
diff
changeset
|
133 } |
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
97
diff
changeset
|
134 |
97
70d2345a903f
nginx-0.0.1-2003-05-29-17:02:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
94
diff
changeset
|
135 for (i = 0; sysctls[i].name; i++) { |
70d2345a903f
nginx-0.0.1-2003-05-29-17:02:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
94
diff
changeset
|
136 size = sysctls[i].size; |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
137 |
97
70d2345a903f
nginx-0.0.1-2003-05-29-17:02:09 import
Igor Sysoev <igor@sysoev.ru>
parents:
94
diff
changeset
|
138 if (sysctlbyname(sysctls[i].name, sysctls[i].value, &size, NULL, 0) |
673 | 139 == 0) |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
140 { |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
141 sysctls[i].exists = 1; |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
142 continue; |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
143 } |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
144 |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
145 err = ngx_errno; |
373
018569a8f09c
nginx-0.0.7-2004-06-30-19:30:41 import
Igor Sysoev <igor@sysoev.ru>
parents:
361
diff
changeset
|
146 |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
147 if (err == NGX_ENOENT) { |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
148 continue; |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
149 } |
88
674d333f4296
nginx-0.0.1-2003-05-14-21:13:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
86
diff
changeset
|
150 |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
151 ngx_log_error(NGX_LOG_ALERT, log, err, |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
152 "sysctlbyname(%s) failed", sysctls[i].name); |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
153 return NGX_ERROR; |
88
674d333f4296
nginx-0.0.1-2003-05-14-21:13:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
86
diff
changeset
|
154 } |
674d333f4296
nginx-0.0.1-2003-05-14-21:13:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
86
diff
changeset
|
155 |
2128
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
156 ngx_ncpu = ngx_darwin_hw_ncpu; |
673 | 157 |
4226
003f0f341edf
Fixed range checking for the "somaxconn" sysctl.
Ruslan Ermilov <ru@nginx.com>
parents:
4223
diff
changeset
|
158 if (ngx_darwin_kern_ipc_somaxconn > 32767) { |
501 | 159 ngx_log_error(NGX_LOG_ALERT, log, 0, |
4226
003f0f341edf
Fixed range checking for the "somaxconn" sysctl.
Ruslan Ermilov <ru@nginx.com>
parents:
4223
diff
changeset
|
160 "sysctl kern.ipc.somaxconn must be less than 32768"); |
501 | 161 return NGX_ERROR; |
162 } | |
452 | 163 |
473 | 164 ngx_tcp_nodelay_and_tcp_nopush = 1; |
165 | |
2128
345a014436d4
*) move Darwin support to separate files
Igor Sysoev <igor@sysoev.ru>
parents:
1771
diff
changeset
|
166 ngx_os_io = ngx_darwin_io; |
473 | 167 |
539 | 168 return NGX_OK; |
86
3973260705cc
nginx-0.0.1-2003-05-12-19:52:24 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
169 } |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
170 |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
171 |
539 | 172 void |
173 ngx_os_specific_status(ngx_log_t *log) | |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
174 { |
673 | 175 u_long value; |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
176 ngx_uint_t i; |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
177 |
2303
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
178 if (ngx_darwin_kern_ostype[0]) { |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
179 ngx_log_error(NGX_LOG_NOTICE, log, 0, "OS: %s %s", |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
180 ngx_darwin_kern_ostype, ngx_darwin_kern_osrelease); |
22b05d177dc6
the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only
Igor Sysoev <igor@sysoev.ru>
parents:
2128
diff
changeset
|
181 } |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
182 |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
183 for (i = 0; sysctls[i].name; i++) { |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
184 if (sysctls[i].exists) { |
673 | 185 if (sysctls[i].size == sizeof(long)) { |
186 value = *(long *) sysctls[i].value; | |
187 | |
188 } else { | |
189 value = *(int *) sysctls[i].value; | |
190 } | |
191 | |
192 ngx_log_error(NGX_LOG_NOTICE, log, 0, "%s: %l", | |
193 sysctls[i].name, value); | |
449
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
194 } |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
195 } |
3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
Igor Sysoev <igor@sysoev.ru>
parents:
444
diff
changeset
|
196 } |