Mercurial > hg > nginx
comparison src/core/ngx_connection.c @ 3537:d2848db4d98e
fix IPv6 and Unix domain sockets inheritance while online upgrade
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 31 May 2010 14:49:11 +0000 |
parents | 102fdc22de4d |
children | 4430d110293e |
comparison
equal
deleted
inserted
replaced
3536:72c3edbd4dc8 | 3537:d2848db4d98e |
---|---|
94 #endif | 94 #endif |
95 | 95 |
96 ls = cycle->listening.elts; | 96 ls = cycle->listening.elts; |
97 for (i = 0; i < cycle->listening.nelts; i++) { | 97 for (i = 0; i < cycle->listening.nelts; i++) { |
98 | 98 |
99 /* AF_INET only */ | 99 ls[i].sockaddr = ngx_palloc(cycle->pool, NGX_SOCKADDRLEN); |
100 | |
101 ls[i].sockaddr = ngx_palloc(cycle->pool, sizeof(struct sockaddr_in)); | |
102 if (ls[i].sockaddr == NULL) { | 100 if (ls[i].sockaddr == NULL) { |
103 return NGX_ERROR; | 101 return NGX_ERROR; |
104 } | 102 } |
105 | 103 |
106 ls[i].socklen = sizeof(struct sockaddr_in); | 104 ls[i].socklen = NGX_SOCKADDRLEN; |
107 if (getsockname(ls[i].fd, ls[i].sockaddr, &ls[i].socklen) == -1) { | 105 if (getsockname(ls[i].fd, ls[i].sockaddr, &ls[i].socklen) == -1) { |
108 ngx_log_error(NGX_LOG_CRIT, cycle->log, ngx_socket_errno, | 106 ngx_log_error(NGX_LOG_CRIT, cycle->log, ngx_socket_errno, |
109 "getsockname() of the inherited " | 107 "getsockname() of the inherited " |
110 "socket #%d failed", ls[i].fd); | 108 "socket #%d failed", ls[i].fd); |
111 ls[i].ignore = 1; | 109 ls[i].ignore = 1; |