Mercurial > hg > nginx
comparison src/event/ngx_event_accept.c @ 4613:9ee20e074a2e
debug_connection: added the IPv6 and UNIX-domain socket support.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Sun, 29 Apr 2012 22:02:18 +0000 |
parents | d620f497c50f |
children | c05cfc46b3bc |
comparison
equal
deleted
inserted
replaced
4612:c42553296af1 | 4613:9ee20e074a2e |
---|---|
250 } | 250 } |
251 | 251 |
252 #if (NGX_DEBUG) | 252 #if (NGX_DEBUG) |
253 { | 253 { |
254 | 254 |
255 in_addr_t i; | 255 struct sockaddr_in *sin; |
256 ngx_event_debug_t *dc; | 256 ngx_cidr_t *cidr; |
257 struct sockaddr_in *sin; | 257 ngx_uint_t i; |
258 | 258 #if (NGX_HAVE_INET6) |
259 sin = (struct sockaddr_in *) sa; | 259 struct sockaddr_in6 *sin6; |
260 dc = ecf->debug_connection.elts; | 260 ngx_uint_t n; |
261 #endif | |
262 | |
263 cidr = ecf->debug_connection.elts; | |
261 for (i = 0; i < ecf->debug_connection.nelts; i++) { | 264 for (i = 0; i < ecf->debug_connection.nelts; i++) { |
262 if ((sin->sin_addr.s_addr & dc[i].mask) == dc[i].addr) { | 265 if (cidr[i].family != c->sockaddr->sa_family) { |
263 log->log_level = NGX_LOG_DEBUG_CONNECTION|NGX_LOG_DEBUG_ALL; | 266 goto next; |
267 } | |
268 | |
269 switch (cidr[i].family) { | |
270 | |
271 #if (NGX_HAVE_INET6) | |
272 case AF_INET6: | |
273 sin6 = (struct sockaddr_in6 *) c->sockaddr; | |
274 for (n = 0; n < 16; n++) { | |
275 if ((sin6->sin6_addr.s6_addr[n] | |
276 & cidr[i].u.in6.mask.s6_addr[n]) | |
277 != cidr[i].u.in6.addr.s6_addr[n]) | |
278 { | |
279 goto next; | |
280 } | |
281 } | |
264 break; | 282 break; |
265 } | 283 #endif |
284 | |
285 #if (NGX_HAVE_UNIX_DOMAIN) | |
286 case AF_UNIX: | |
287 break; | |
288 #endif | |
289 | |
290 default: /* AF_INET */ | |
291 sin = (struct sockaddr_in *) c->sockaddr; | |
292 if ((sin->sin_addr.s_addr & cidr[i].u.in.mask) | |
293 != cidr[i].u.in.addr) | |
294 { | |
295 goto next; | |
296 } | |
297 break; | |
298 } | |
299 | |
300 log->log_level = NGX_LOG_DEBUG_CONNECTION|NGX_LOG_DEBUG_ALL; | |
301 break; | |
302 | |
303 next: | |
304 continue; | |
266 } | 305 } |
267 | 306 |
268 } | 307 } |
269 #endif | 308 #endif |
270 | 309 |