Mercurial > hg > nginx
comparison src/os/unix/ngx_freebsd_init.c @ 88:674d333f4296
nginx-0.0.1-2003-05-14-21:13:13 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 14 May 2003 17:13:13 +0000 |
parents | 3973260705cc |
children | 637625a2acdb |
comparison
equal
deleted
inserted
replaced
87:5f6d848dcbef | 88:674d333f4296 |
---|---|
1 | 1 |
2 #include <ngx_freebsd_init.h> | 2 #include <ngx_freebsd_init.h> |
3 | 3 |
4 | 4 |
5 int freebsd_kern_osreldate; | 5 char ngx_freebsd_kern_ostype[20]; |
6 int freebsd_hw_ncpu; | 6 char ngx_freebsd_kern_osrelease[20]; |
7 | 7 int ngx_freebsd_kern_osreldate; |
8 int freebsd_sendfile_nbytes_bug; | 8 int ngx_freebsd_hw_ncpu; |
9 int ngx_freebsd_net_inet_tcp_sendspace; | |
10 int ngx_freebsd_sendfile_nbytes_bug; | |
9 | 11 |
10 | 12 |
11 int ngx_os_init(ngx_log_t *log) | 13 int ngx_os_init(ngx_log_t *log) |
12 { | 14 { |
13 size_t size; | 15 size_t size; |
14 | 16 |
17 size = 20; | |
18 if (sysctlbyname("kern.ostype", | |
19 ngx_freebsd_kern_ostype, &size, NULL, 0) == -1) { | |
20 ngx_log_error(NGX_LOG_ALERT, log, errno, | |
21 "sysctlbyname(kern.ostype) failed"); | |
22 return NGX_ERROR; | |
23 } | |
24 | |
25 size = 20; | |
26 if (sysctlbyname("kern.osrelease", | |
27 ngx_freebsd_kern_osrelease, &size, NULL, 0) == -1) { | |
28 ngx_log_error(NGX_LOG_ALERT, log, errno, | |
29 "sysctlbyname(kern.osrelease) failed"); | |
30 return NGX_ERROR; | |
31 } | |
32 | |
33 ngx_log_error(NGX_LOG_INFO, log, 0, "OS: %s %s", | |
34 ngx_freebsd_kern_ostype, ngx_freebsd_kern_osrelease); | |
35 | |
36 | |
15 size = 4; | 37 size = 4; |
16 if (sysctlbyname("kern.osreldate", | 38 if (sysctlbyname("kern.osreldate", |
17 &freebsd_kern_osreldate, &size, NULL, 0) == -1) { | 39 &ngx_freebsd_kern_osreldate, &size, NULL, 0) == -1) { |
18 ngx_log_error(NGX_LOG_ALERT, log, errno, | 40 ngx_log_error(NGX_LOG_ALERT, log, errno, |
19 "sysctlbyname(kern.osreldate) failed"); | 41 "sysctlbyname(kern.osreldate) failed"); |
20 return NGX_ERROR; | 42 return NGX_ERROR; |
21 } | 43 } |
22 | 44 |
23 ngx_log_error(NGX_LOG_INFO, log, 0, | 45 ngx_log_error(NGX_LOG_INFO, log, 0, |
24 "kern.osreldate: %d, built on %d", | 46 "kern.osreldate: %d, built on %d", |
25 freebsd_kern_osreldate, __FreeBSD_version); | 47 ngx_freebsd_kern_osreldate, __FreeBSD_version); |
26 | 48 |
27 | 49 |
28 #if HAVE_FREEBSD_SENDFILE | 50 #if HAVE_FREEBSD_SENDFILE |
29 | 51 |
30 /* The determination of the sendfile() nbytes bug is complex enough. | 52 /* The determination of the sendfile() nbytes bug is complex enough. |
40 | 62 |
41 #if (__FreeBSD__ == 4 && __FreeBSD_version >= 460102) \ | 63 #if (__FreeBSD__ == 4 && __FreeBSD_version >= 460102) \ |
42 || __FreeBSD_version == 460002 || __FreeBSD_version >= 500039 | 64 || __FreeBSD_version == 460002 || __FreeBSD_version >= 500039 |
43 | 65 |
44 /* a new syscall without the bug */ | 66 /* a new syscall without the bug */ |
45 freebsd_sendfile_nbytes_bug = 0; | 67 ngx_freebsd_sendfile_nbytes_bug = 0; |
46 | 68 |
47 #else | 69 #else |
48 | 70 |
49 /* an old syscall that can have the bug */ | 71 /* an old syscall that can have the bug */ |
50 freebsd_sendfile_nbytes_bug = 1; | 72 ngx_freebsd_sendfile_nbytes_bug = 1; |
51 | 73 |
52 #endif | 74 #endif |
53 | 75 |
54 #endif /* HAVE_FREEBSD_SENDFILE */ | 76 #endif /* HAVE_FREEBSD_SENDFILE */ |
55 | 77 |
56 | 78 |
57 size = 4; | 79 size = 4; |
58 if (sysctlbyname("hw.ncpu", &freebsd_hw_ncpu, &size, NULL, 0) == -1) { | 80 if (sysctlbyname("hw.ncpu", &ngx_freebsd_hw_ncpu, &size, NULL, 0) == -1) { |
59 ngx_log_error(NGX_LOG_ALERT, log, errno, | 81 ngx_log_error(NGX_LOG_ALERT, log, errno, |
60 "sysctlbyname(hw.ncpu) failed"); | 82 "sysctlbyname(hw.ncpu) failed"); |
61 return NGX_ERROR; | 83 return NGX_ERROR; |
62 } | 84 } |
63 | 85 |
64 ngx_log_error(NGX_LOG_INFO, log, 0, "hw.ncpu: %d", freebsd_hw_ncpu); | 86 ngx_log_error(NGX_LOG_INFO, log, 0, "hw.ncpu: %d", ngx_freebsd_hw_ncpu); |
87 | |
88 | |
89 size = 4; | |
90 if (sysctlbyname("net.inet.tcp.sendspace", | |
91 &ngx_freebsd_net_inet_tcp_sendspace, | |
92 &size, NULL, 0) == -1) | |
93 { | |
94 ngx_log_error(NGX_LOG_ALERT, log, errno, | |
95 "sysctlbyname(net.inet.tcp.sendspace) failed"); | |
96 return NGX_ERROR; | |
97 } | |
98 | |
99 ngx_log_error(NGX_LOG_INFO, log, 0, "net.inet.tcp.sendspace: %d", | |
100 ngx_freebsd_net_inet_tcp_sendspace); | |
65 | 101 |
66 return NGX_OK; | 102 return NGX_OK; |
67 } | 103 } |