Mercurial > hg > nginx-vendor-current
comparison src/os/unix/ngx_darwin_init.c @ 418:ff86d646f9df NGINX_0_7_21
nginx 0.7.21
*) Changes in the ngx_http_limit_req_module.
*) Feature: the EXSLT support in the ngx_http_xslt_module.
Thanks to Denis F. Latypoff.
*) Workaround: compatibility with glibc 2.3.
Thanks to Eric Benson and Maxim Dounin.
*) Bugfix: nginx could not run on MacOSX 10.4 and earlier; the bug had
appeared in 0.7.6.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Tue, 11 Nov 2008 00:00:00 +0300 |
parents | 0b6053502c55 |
children | 615b5ea36fc0 |
comparison
equal
deleted
inserted
replaced
417:735cec38a814 | 418:ff86d646f9df |
---|---|
62 size_t size; | 62 size_t size; |
63 ngx_err_t err; | 63 ngx_err_t err; |
64 ngx_uint_t i; | 64 ngx_uint_t i; |
65 | 65 |
66 size = sizeof(ngx_darwin_kern_ostype); | 66 size = sizeof(ngx_darwin_kern_ostype); |
67 if (sysctlbyname("kern.ostype", | 67 if (sysctlbyname("kern.ostype", ngx_darwin_kern_ostype, &size, NULL, 0) |
68 ngx_darwin_kern_ostype, &size, NULL, 0) == -1) { | 68 == -1) |
69 ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, | 69 { |
70 "sysctlbyname(kern.ostype) failed"); | 70 err = ngx_errno; |
71 | 71 |
72 if (ngx_errno != NGX_ENOMEM) { | 72 if (err != NGX_ENOENT) { |
73 return NGX_ERROR; | 73 |
74 ngx_log_error(NGX_LOG_ALERT, log, err, | |
75 "sysctlbyname(kern.ostype) failed"); | |
76 | |
77 if (err != NGX_ENOMEM) { | |
78 return NGX_ERROR; | |
79 } | |
80 | |
81 ngx_darwin_kern_ostype[size - 1] = '\0'; | |
74 } | 82 } |
75 | |
76 ngx_darwin_kern_ostype[size - 1] = '\0'; | |
77 } | 83 } |
78 | 84 |
79 size = sizeof(ngx_darwin_kern_osrelease); | 85 size = sizeof(ngx_darwin_kern_osrelease); |
80 if (sysctlbyname("kern.osrelease", | 86 if (sysctlbyname("kern.osrelease", ngx_darwin_kern_osrelease, &size, |
81 ngx_darwin_kern_osrelease, &size, NULL, 0) == -1) { | 87 NULL, 0) |
82 ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, | 88 == -1) |
83 "sysctlbyname(kern.osrelease) failed"); | 89 { |
90 err = ngx_errno; | |
84 | 91 |
85 if (ngx_errno != NGX_ENOMEM) { | 92 if (err != NGX_ENOENT) { |
86 return NGX_ERROR; | 93 |
94 ngx_log_error(NGX_LOG_ALERT, log, err, | |
95 "sysctlbyname(kern.osrelease) failed"); | |
96 | |
97 if (err != NGX_ENOMEM) { | |
98 return NGX_ERROR; | |
99 } | |
100 | |
101 ngx_darwin_kern_osrelease[size - 1] = '\0'; | |
87 } | 102 } |
88 | |
89 ngx_darwin_kern_osrelease[size - 1] = '\0'; | |
90 } | 103 } |
91 | |
92 | 104 |
93 for (i = 0; sysctls[i].name; i++) { | 105 for (i = 0; sysctls[i].name; i++) { |
94 size = sysctls[i].size; | 106 size = sysctls[i].size; |
95 | 107 |
96 if (sysctlbyname(sysctls[i].name, sysctls[i].value, &size, NULL, 0) | 108 if (sysctlbyname(sysctls[i].name, sysctls[i].value, &size, NULL, 0) |
134 ngx_os_specific_status(ngx_log_t *log) | 146 ngx_os_specific_status(ngx_log_t *log) |
135 { | 147 { |
136 u_long value; | 148 u_long value; |
137 ngx_uint_t i; | 149 ngx_uint_t i; |
138 | 150 |
139 ngx_log_error(NGX_LOG_NOTICE, log, 0, "OS: %s %s", | 151 if (ngx_darwin_kern_ostype[0]) { |
140 ngx_darwin_kern_ostype, ngx_darwin_kern_osrelease); | 152 ngx_log_error(NGX_LOG_NOTICE, log, 0, "OS: %s %s", |
153 ngx_darwin_kern_ostype, ngx_darwin_kern_osrelease); | |
154 } | |
141 | 155 |
142 for (i = 0; sysctls[i].name; i++) { | 156 for (i = 0; sysctls[i].name; i++) { |
143 if (sysctls[i].exists) { | 157 if (sysctls[i].exists) { |
144 if (sysctls[i].size == sizeof(long)) { | 158 if (sysctls[i].size == sizeof(long)) { |
145 value = *(long *) sysctls[i].value; | 159 value = *(long *) sysctls[i].value; |