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 }