Mercurial > hg > nginx-vendor-0-8
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; |