Mercurial > hg > nginx-vendor-current
comparison src/core/ngx_cycle.c @ 576:01f2313e34f1 NGINX_0_8_40
nginx 0.8.40
*) Security: now nginx/Windows ignores default file stream name.
Thanks to Jose Antonio Vazquez Gonzalez.
*) Feature: the ngx_http_uwsgi_module.
Thanks to Roberto De Ioris.
*) Feature: a "fastcgi_param" directive with value starting with
"HTTP_" overrides a client request header line.
*) Bugfix: the "If-Modified-Since", "If-Range", etc. client request
header lines were passed to FastCGI-server while caching.
*) Bugfix: listen unix domain socket could not be changed during
reconfiguration.
Thanks to Maxim Dounin.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 07 Jun 2010 00:00:00 +0400 |
parents | be4f34123024 |
children | c456a023113c |
comparison
equal
deleted
inserted
replaced
575:6ad548c0b830 | 576:01f2313e34f1 |
---|---|
664 if (ngx_close_socket(ls[i].fd) == -1) { | 664 if (ngx_close_socket(ls[i].fd) == -1) { |
665 ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, | 665 ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno, |
666 ngx_close_socket_n " listening socket on %V failed", | 666 ngx_close_socket_n " listening socket on %V failed", |
667 &ls[i].addr_text); | 667 &ls[i].addr_text); |
668 } | 668 } |
669 | |
670 #if (NGX_HAVE_UNIX_DOMAIN) | |
671 | |
672 if (ls[i].sockaddr->sa_family == AF_UNIX) { | |
673 u_char *name; | |
674 | |
675 name = ls[i].addr_text.data + sizeof("unix:") - 1; | |
676 | |
677 ngx_log_error(NGX_LOG_WARN, cycle->log, 0, | |
678 "deleting socket %s", name); | |
679 | |
680 if (ngx_delete_file(name) == -1) { | |
681 ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_socket_errno, | |
682 ngx_delete_file_n " %s failed", name); | |
683 } | |
684 } | |
685 | |
686 #endif | |
669 } | 687 } |
670 | 688 |
671 | 689 |
672 /* close the unnecessary open files */ | 690 /* close the unnecessary open files */ |
673 | 691 |
833 { | 851 { |
834 struct sockaddr_in *sin1, *sin2; | 852 struct sockaddr_in *sin1, *sin2; |
835 #if (NGX_HAVE_INET6) | 853 #if (NGX_HAVE_INET6) |
836 struct sockaddr_in6 *sin61, *sin62; | 854 struct sockaddr_in6 *sin61, *sin62; |
837 #endif | 855 #endif |
856 #if (NGX_HAVE_UNIX_DOMAIN) | |
857 struct sockaddr_un *saun1, *saun2; | |
858 #endif | |
838 | 859 |
839 if (sa1->sa_family != sa2->sa_family) { | 860 if (sa1->sa_family != sa2->sa_family) { |
840 return NGX_DECLINED; | 861 return NGX_DECLINED; |
841 } | 862 } |
842 | 863 |
854 if (ngx_memcmp(&sin61->sin6_addr, &sin62->sin6_addr, 16) != 0) { | 875 if (ngx_memcmp(&sin61->sin6_addr, &sin62->sin6_addr, 16) != 0) { |
855 return NGX_DECLINED; | 876 return NGX_DECLINED; |
856 } | 877 } |
857 | 878 |
858 break; | 879 break; |
880 #endif | |
881 | |
882 #if (NGX_HAVE_UNIX_DOMAIN) | |
883 case AF_UNIX: | |
884 saun1 = (struct sockaddr_un *) sa1; | |
885 saun2 = (struct sockaddr_un *) sa2; | |
886 | |
887 if (ngx_memcmp(&saun1->sun_path, &saun2->sun_path, | |
888 sizeof(saun1->sun_path)) | |
889 != 0) | |
890 { | |
891 return NGX_DECLINED; | |
892 } | |
893 | |
894 break; | |
859 #endif | 895 #endif |
860 | 896 |
861 default: /* AF_INET */ | 897 default: /* AF_INET */ |
862 | 898 |
863 sin1 = (struct sockaddr_in *) sa1; | 899 sin1 = (struct sockaddr_in *) sa1; |