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;