comparison src/http/ngx_http.c @ 10:46833bd150cb NGINX_0_1_5

nginx 0.1.5 *) Bugfix: on Solaris and Linux there may be too many "recvmsg() returned not enough data" alerts. *) Bugfix: there were the "writev() failed (22: Invalid argument)" errors on Solaris in proxy mode without sendfile. On other platforms that do not support sendfile at all the process got caught in an endless loop. *) Bugfix: segmentation fault on Solaris in proxy mode and using sendfile. *) Bugfix: segmentation fault on Solaris. *) Bugfix: on-line upgrade did not work on Linux. *) Bugfix: the ngx_http_autoindex_module module did not escape the spaces, the quotes, and the percent signs in the directory listing. *) Change: the decrease of the copy operations. *) Feature: the userid_p3p directive.
author Igor Sysoev <http://sysoev.ru>
date Thu, 11 Nov 2004 00:00:00 +0300
parents 4b2dafa26fe2
children 45fe5b98a9de
comparison
equal deleted inserted replaced
9:77eee314ddbd 10:46833bd150cb
81 ngx_http_in_addr_t *in_addr, *inaddr; 81 ngx_http_in_addr_t *in_addr, *inaddr;
82 ngx_http_server_name_t *s_name, *name; 82 ngx_http_server_name_t *s_name, *name;
83 ngx_http_core_srv_conf_t **cscfp, *cscf; 83 ngx_http_core_srv_conf_t **cscfp, *cscf;
84 ngx_http_core_loc_conf_t *clcf; 84 ngx_http_core_loc_conf_t *clcf;
85 ngx_http_core_main_conf_t *cmcf; 85 ngx_http_core_main_conf_t *cmcf;
86 #if (WIN32) 86 #if (NGX_WIN32)
87 ngx_iocp_conf_t *iocpcf; 87 ngx_iocp_conf_t *iocpcf;
88 #endif 88 #endif
89 89
90 #if (NGX_SUPPRESS_WARN) 90 #if (NGX_SUPPRESS_WARN)
91 /* MSVC thinks 'in_ports' may be used without having been initialized */ 91 /* MSVC thinks 'in_ports' may be used without having been initialized */
341 341
342 if (lscf[l].default_server) { 342 if (lscf[l].default_server) {
343 343
344 if (in_addr[a].default_server) { 344 if (in_addr[a].default_server) {
345 ngx_log_error(NGX_LOG_ERR, cf->log, 0, 345 ngx_log_error(NGX_LOG_ERR, cf->log, 0,
346 "the duplicate default server in %s:%d", 346 "the duplicate default server in %V:%d",
347 lscf[l].file_name.data, 347 &lscf[l].file_name, lscf[l].line);
348 lscf[l].line);
349 348
350 return NGX_CONF_ERROR; 349 return NGX_CONF_ERROR;
351 } 350 }
352 351
353 in_addr[a].core_srv_conf = cscfp[s]; 352 in_addr[a].core_srv_conf = cscfp[s];
514 ls->post_accept_timeout = cscf->post_accept_timeout; 513 ls->post_accept_timeout = cscf->post_accept_timeout;
515 514
516 clcf = cscf->ctx->loc_conf[ngx_http_core_module.ctx_index]; 515 clcf = cscf->ctx->loc_conf[ngx_http_core_module.ctx_index];
517 ls->log = clcf->err_log; 516 ls->log = clcf->err_log;
518 517
519 #if (WIN32) 518 #if (NGX_WIN32)
520 iocpcf = ngx_event_get_conf(cf->cycle->conf_ctx, ngx_iocp_module); 519 iocpcf = ngx_event_get_conf(cf->cycle->conf_ctx, ngx_iocp_module);
521 if (iocpcf->acceptex_read) { 520 if (iocpcf->acceptex_read) {
522 ls->post_accept_buffer_size = cscf->client_header_buffer_size; 521 ls->post_accept_buffer_size = cscf->client_header_buffer_size;
523 } 522 }
524 #endif 523 #endif
580 ngx_uint_t p, a, n; 579 ngx_uint_t p, a, n;
581 580
582 in_port = in_ports.elts; 581 in_port = in_ports.elts;
583 for (p = 0; p < in_ports.nelts; p++) { 582 for (p = 0; p < in_ports.nelts; p++) {
584 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, cf->log, 0, 583 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, cf->log, 0,
585 "port: %d %08x", in_port[p].port, &in_port[p]); 584 "port: %d %p", in_port[p].port, &in_port[p]);
586 in_addr = in_port[p].addrs.elts; 585 in_addr = in_port[p].addrs.elts;
587 for (a = 0; a < in_port[p].addrs.nelts; a++) { 586 for (a = 0; a < in_port[p].addrs.nelts; a++) {
588 ngx_inet_ntop(AF_INET, &in_addr[a].addr, address, 20); 587 ngx_inet_ntop(AF_INET, &in_addr[a].addr, address, 20);
589 ngx_log_debug3(NGX_LOG_DEBUG_HTTP, cf->log, 0, 588 ngx_log_debug3(NGX_LOG_DEBUG_HTTP, cf->log, 0,
590 "%s:%d %08x", 589 "%s:%d %p",
591 address, in_port[p].port, in_addr[a].core_srv_conf); 590 address, in_port[p].port, in_addr[a].core_srv_conf);
592 s_name = in_addr[a].names.elts; 591 s_name = in_addr[a].names.elts;
593 for (n = 0; n < in_addr[a].names.nelts; n++) { 592 for (n = 0; n < in_addr[a].names.nelts; n++) {
594 ngx_log_debug4(NGX_LOG_DEBUG_HTTP, cf->log, 0, 593 ngx_log_debug4(NGX_LOG_DEBUG_HTTP, cf->log, 0,
595 "%s:%d %s %08x", 594 "%s:%d %V %p",
596 address, in_port[p].port, s_name[n].name.data, 595 address, in_port[p].port, &s_name[n].name,
597 s_name[n].core_srv_conf); 596 s_name[n].core_srv_conf);
598 } 597 }
599 } 598 }
600 } 599 }
601 } 600 }
669 668
670 server_names = cscf->server_names.elts; 669 server_names = cscf->server_names.elts;
671 for (i = 0; i < cscf->server_names.nelts; i++) { 670 for (i = 0; i < cscf->server_names.nelts; i++) {
672 671
673 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, cf->log, 0, 672 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, cf->log, 0,
674 "name: %s", server_names[i].name.data); 673 "name: %V", &server_names[i].name);
675 674
676 /* TODO: duplicate names can be checked here */ 675 /* TODO: duplicate names can be checked here */
677 676
678 if (!(name = ngx_array_push(&in_addr->names))) { 677 if (!(name = ngx_array_push(&in_addr->names))) {
679 return NGX_ERROR; 678 return NGX_ERROR;