Mercurial > hg > nginx
comparison src/http/ngx_http.c @ 461:a88a3e4e158f release-0.1.5
nginx-0.1.5-RELEASE import
*) 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 <igor@sysoev.ru> |
---|---|
date | Thu, 11 Nov 2004 14:07:14 +0000 |
parents | 295d97d70c69 |
children | ad1e9ebf93bb |
comparison
equal
deleted
inserted
replaced
460:5f8319142dfc | 461:a88a3e4e158f |
---|---|
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; |