comparison src/core/nginx.c @ 378:fc497c1dfb7c NGINX_0_6_33

nginx 0.6.33 *) Feature: now nginx returns the 405 status code for POST method requesting a static file only if the file exists. *) Workaround: compatibility with glibc 2.3. Thanks to Eric Benson and Maxim Dounin. *) Bugfix: the resolver did not understand big DNS responses. Thanks to Zyb. *) Bugfix: in HTTPS mode requests might fail with the "bad write retry" error. *) Bugfix: the ngx_http_charset_module did not understand quoted charset name received from backend. *) Bugfix: if the "max_fails=0" parameter was used in upstream with several servers, then a worker process exited on a SIGFPE signal. Thanks to Maxim Dounin. *) Bugfix: the $r->header_in() method did not return value of the "Host", "User-Agent", and "Connection" request header lines; the bug had appeared in 0.6.32. *) Bugfix: a full response was returned for request method HEAD while redirection via an "error_page" directive. *) Bugfix: if a directory has search only rights and the first index file was absent, then nginx returned the 500 status code. *) Bugfix: of recursive error_page for 500 status code.
author Igor Sysoev <http://sysoev.ru>
date Thu, 20 Nov 2008 00:00:00 +0300
parents d13234035cad
children 1878e9c00f22
comparison
equal deleted inserted replaced
377:15c4ba3bc2fa 378:fc497c1dfb7c
190 190
191 191
192 int ngx_cdecl 192 int ngx_cdecl
193 main(int argc, char *const *argv) 193 main(int argc, char *const *argv)
194 { 194 {
195 char *p;
196 ssize_t n;
195 ngx_int_t i; 197 ngx_int_t i;
196 ngx_log_t *log; 198 ngx_log_t *log;
197 ngx_cycle_t *cycle, init_cycle; 199 ngx_cycle_t *cycle, init_cycle;
198 ngx_core_conf_t *ccf; 200 ngx_core_conf_t *ccf;
199 201
239 if (ngx_getopt(&init_cycle, argc, ngx_argv) != NGX_OK) { 241 if (ngx_getopt(&init_cycle, argc, ngx_argv) != NGX_OK) {
240 return 1; 242 return 1;
241 } 243 }
242 244
243 if (ngx_show_version) { 245 if (ngx_show_version) {
244 ngx_write_fd(ngx_stderr_fileno, "nginx version: " NGINX_VER CRLF, 246
245 sizeof("nginx version: " NGINX_VER CRLF) - 1); 247 p = "nginx version: " NGINX_VER CRLF;
248 n = sizeof("nginx version: " NGINX_VER CRLF) - 1;
249
250 if (ngx_write_fd(ngx_stderr_fileno, p, n) != n) {
251 return 1;
252 }
246 253
247 if (ngx_show_configure) { 254 if (ngx_show_configure) {
248 #ifdef NGX_COMPILER 255 #ifdef NGX_COMPILER
249 ngx_write_fd(ngx_stderr_fileno, "built by " NGX_COMPILER CRLF, 256 p = "built by " NGX_COMPILER CRLF;
250 sizeof("built by " NGX_COMPILER CRLF) - 1); 257 n = sizeof("built by " NGX_COMPILER CRLF) - 1;
251 #endif 258
252 259 if (ngx_write_fd(ngx_stderr_fileno, p, n) != n) {
253 #ifndef __WATCOMC__ 260 return 1;
254 261 }
255 /* OpenWatcomC could not build the long NGX_CONFIGURE string */ 262 #endif
256 263
257 ngx_write_fd(ngx_stderr_fileno, 264 p = "configure arguments: " NGX_CONFIGURE CRLF;
258 "configure arguments: " NGX_CONFIGURE CRLF, 265 n = sizeof("configure arguments :" NGX_CONFIGURE CRLF) - 1;
259 sizeof("configure arguments :" NGX_CONFIGURE CRLF) - 1); 266
260 #endif 267 if (ngx_write_fd(ngx_stderr_fileno, p, n) != n) {
268 return 1;
269 }
261 } 270 }
262 271
263 if (!ngx_test_config) { 272 if (!ngx_test_config) {
264 return 0; 273 return 0;
265 } 274 }