the sysctl "kern.ostype" and "kern.osrelease" had appeared in MacOSX 10.5 only

This commit is contained in:
Igor Sysoev 2008-11-11 19:44:30 +00:00
parent f2884e194a
commit a25d29ff6f

View File

@ -64,32 +64,44 @@ ngx_os_specific_init(ngx_log_t *log)
ngx_uint_t i; ngx_uint_t i;
size = sizeof(ngx_darwin_kern_ostype); size = sizeof(ngx_darwin_kern_ostype);
if (sysctlbyname("kern.ostype", if (sysctlbyname("kern.ostype", ngx_darwin_kern_ostype, &size, NULL, 0)
ngx_darwin_kern_ostype, &size, NULL, 0) == -1) { == -1)
ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, {
"sysctlbyname(kern.ostype) failed"); err = ngx_errno;
if (ngx_errno != NGX_ENOMEM) { if (err != NGX_ENOENT) {
return NGX_ERROR;
ngx_log_error(NGX_LOG_ALERT, log, err,
"sysctlbyname(kern.ostype) failed");
if (err != NGX_ENOMEM) {
return NGX_ERROR;
}
ngx_darwin_kern_ostype[size - 1] = '\0';
} }
ngx_darwin_kern_ostype[size - 1] = '\0';
} }
size = sizeof(ngx_darwin_kern_osrelease); size = sizeof(ngx_darwin_kern_osrelease);
if (sysctlbyname("kern.osrelease", if (sysctlbyname("kern.osrelease", ngx_darwin_kern_osrelease, &size,
ngx_darwin_kern_osrelease, &size, NULL, 0) == -1) { NULL, 0)
ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, == -1)
"sysctlbyname(kern.osrelease) failed"); {
err = ngx_errno;
if (ngx_errno != NGX_ENOMEM) { if (err != NGX_ENOENT) {
return NGX_ERROR;
ngx_log_error(NGX_LOG_ALERT, log, err,
"sysctlbyname(kern.osrelease) failed");
if (err != NGX_ENOMEM) {
return NGX_ERROR;
}
ngx_darwin_kern_osrelease[size - 1] = '\0';
} }
ngx_darwin_kern_osrelease[size - 1] = '\0';
} }
for (i = 0; sysctls[i].name; i++) { for (i = 0; sysctls[i].name; i++) {
size = sysctls[i].size; size = sysctls[i].size;
@ -136,8 +148,10 @@ ngx_os_specific_status(ngx_log_t *log)
u_long value; u_long value;
ngx_uint_t i; ngx_uint_t i;
ngx_log_error(NGX_LOG_NOTICE, log, 0, "OS: %s %s", if (ngx_darwin_kern_ostype[0]) {
ngx_darwin_kern_ostype, ngx_darwin_kern_osrelease); ngx_log_error(NGX_LOG_NOTICE, log, 0, "OS: %s %s",
ngx_darwin_kern_ostype, ngx_darwin_kern_osrelease);
}
for (i = 0; sysctls[i].name; i++) { for (i = 0; sysctls[i].name; i++) {
if (sysctls[i].exists) { if (sysctls[i].exists) {