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;