Mercurial > hg > nginx-quic
comparison src/os/unix/ngx_freebsd_init.c @ 4226:003f0f341edf
Fixed range checking for the "somaxconn" sysctl.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Tue, 25 Oct 2011 13:48:05 +0000 |
parents | 1b779cb69dc8 |
children | d620f497c50f |
comparison
equal
deleted
inserted
replaced
4225:016352c19049 | 4226:003f0f341edf |
---|---|
96 | 96 |
97 | 97 |
98 ngx_int_t | 98 ngx_int_t |
99 ngx_os_specific_init(ngx_log_t *log) | 99 ngx_os_specific_init(ngx_log_t *log) |
100 { | 100 { |
101 int version, somaxconn; | 101 int version; |
102 size_t size; | 102 size_t size; |
103 ngx_err_t err; | 103 ngx_err_t err; |
104 ngx_uint_t i; | 104 ngx_uint_t i; |
105 | 105 |
106 size = sizeof(ngx_freebsd_kern_ostype); | 106 size = sizeof(ngx_freebsd_kern_ostype); |
208 | 208 |
209 } else { | 209 } else { |
210 ngx_ncpu = ngx_freebsd_hw_ncpu; | 210 ngx_ncpu = ngx_freebsd_hw_ncpu; |
211 } | 211 } |
212 | 212 |
213 somaxconn = version < 600008 ? 32676 : 65535; | 213 if (version < 600008 && ngx_freebsd_kern_ipc_somaxconn > 32767) { |
214 | |
215 if (ngx_freebsd_kern_ipc_somaxconn > somaxconn) { | |
216 ngx_log_error(NGX_LOG_ALERT, log, 0, | 214 ngx_log_error(NGX_LOG_ALERT, log, 0, |
217 "sysctl kern.ipc.somaxconn must be no more than %d", | 215 "sysctl kern.ipc.somaxconn must be less than 32768"); |
218 somaxconn); | |
219 return NGX_ERROR; | 216 return NGX_ERROR; |
220 } | 217 } |
221 | 218 |
222 ngx_tcp_nodelay_and_tcp_nopush = 1; | 219 ngx_tcp_nodelay_and_tcp_nopush = 1; |
223 | 220 |