comparison src/http/ngx_http.c @ 486:6484cbba0222 NGINX_0_7_55

nginx 0.7.55 *) Bugfix: the http_XXX parameters in "proxy_cache_use_stale" and "fastcgi_cache_use_stale" directives did not work. *) Bugfix: fastcgi cache did not cache header only responses. *) Bugfix: of "select() failed (9: Bad file descriptor)" error in nginx/Unix and "select() failed (10022: ...)" error in nginx/Windows. *) Bugfix: a segmentation fault might occur in worker process, if an "debug_connection" directive was used; the bug had appeared in 0.7.54. *) Bugfix: fix ngx_http_image_filter_module building errors. *) Bugfix: the files bigger than 2G could not be transferred using $r->sendfile. Thanks to Maxim Dounin.
author Igor Sysoev <http://sysoev.ru>
date Wed, 06 May 2009 00:00:00 +0400
parents ed5e10fb40fc
children 98143f74eb3d
comparison
equal deleted inserted replaced
485:21824e8058e6 486:6484cbba0222
1686 1686
1687 static ngx_listening_t * 1687 static ngx_listening_t *
1688 ngx_http_add_listening(ngx_conf_t *cf, ngx_http_conf_addr_t *addr) 1688 ngx_http_add_listening(ngx_conf_t *cf, ngx_http_conf_addr_t *addr)
1689 { 1689 {
1690 ngx_listening_t *ls; 1690 ngx_listening_t *ls;
1691 struct sockaddr *sa;
1692 ngx_http_core_loc_conf_t *clcf; 1691 ngx_http_core_loc_conf_t *clcf;
1693 ngx_http_core_srv_conf_t *cscf; 1692 ngx_http_core_srv_conf_t *cscf;
1694 u_char text[NGX_SOCKADDR_STRLEN]; 1693
1695 1694 ls = ngx_create_listening(cf, addr->sockaddr, addr->socklen);
1696 ls = ngx_array_push(&cf->cycle->listening);
1697 if (ls == NULL) { 1695 if (ls == NULL) {
1698 return NULL; 1696 return NULL;
1699 }
1700
1701 ngx_memzero(ls, sizeof(ngx_listening_t));
1702
1703 sa = ngx_palloc(cf->pool, addr->socklen);
1704 if (sa == NULL) {
1705 return NULL;
1706 }
1707
1708 ngx_memcpy(sa, addr->sockaddr, addr->socklen);
1709
1710 ls->sockaddr = sa;
1711 ls->socklen = addr->socklen;
1712
1713 ls->addr_text.len = ngx_sock_ntop(sa, text, NGX_SOCKADDR_STRLEN, 1);
1714
1715 ls->addr_text.data = ngx_pnalloc(cf->pool, ls->addr_text.len);
1716 if (ls->addr_text.data == NULL) {
1717 return NULL;
1718 }
1719
1720 ngx_memcpy(ls->addr_text.data, text, ls->addr_text.len);
1721
1722 ls->fd = (ngx_socket_t) -1;
1723 ls->type = SOCK_STREAM;
1724
1725 switch (ls->sockaddr->sa_family) {
1726 #if (NGX_HAVE_INET6)
1727 case AF_INET6:
1728 ls->addr_text_max_len = NGX_INET6_ADDRSTRLEN;
1729 break;
1730 #endif
1731 case AF_INET:
1732 ls->addr_text_max_len = NGX_INET_ADDRSTRLEN;
1733 break;
1734 default:
1735 ls->addr_text_max_len = NGX_SOCKADDR_STRLEN;
1736 break;
1737 } 1697 }
1738 1698
1739 ls->addr_ntop = 1; 1699 ls->addr_ntop = 1;
1740 1700
1741 ls->handler = ngx_http_init_connection; 1701 ls->handler = ngx_http_init_connection;