Mercurial > hg > nginx
comparison src/core/ngx_resolver.c @ 5921:5004210e8c78
Resolver: fixed debug event logging.
In 954867a2f0a6, we switched to using resolver node as the timer event data.
This broke debug event logging.
Replaced now unused ngx_resolver_ctx_t.ident with ngx_resolver_node_t.ident
so that ngx_event_ident() extracts something sensible when accessing
ngx_resolver_node_t as ngx_connection_t.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Thu, 20 Nov 2014 15:24:42 +0300 |
parents | 7420068c4d4b |
children | 4dc8e7b62216 c36482d0a79f |
comparison
equal
deleted
inserted
replaced
5920:7420068c4d4b | 5921:5004210e8c78 |
---|---|
44 u_char class_lo; | 44 u_char class_lo; |
45 u_char ttl[4]; | 45 u_char ttl[4]; |
46 u_char len_hi; | 46 u_char len_hi; |
47 u_char len_lo; | 47 u_char len_lo; |
48 } ngx_resolver_an_t; | 48 } ngx_resolver_an_t; |
49 | |
50 | |
51 #define ngx_resolver_node(n) \ | |
52 (ngx_resolver_node_t *) \ | |
53 ((u_char *) (n) - offsetof(ngx_resolver_node_t, node)) | |
49 | 54 |
50 | 55 |
51 ngx_int_t ngx_udp_connect(ngx_udp_connection_t *uc); | 56 ngx_int_t ngx_udp_connect(ngx_udp_connection_t *uc); |
52 | 57 |
53 | 58 |
286 ngx_resolver_ctx_t *ctx, *next; | 291 ngx_resolver_ctx_t *ctx, *next; |
287 ngx_resolver_node_t *rn; | 292 ngx_resolver_node_t *rn; |
288 | 293 |
289 while (tree->root != tree->sentinel) { | 294 while (tree->root != tree->sentinel) { |
290 | 295 |
291 rn = (ngx_resolver_node_t *) ngx_rbtree_min(tree->root, tree->sentinel); | 296 rn = ngx_resolver_node(ngx_rbtree_min(tree->root, tree->sentinel)); |
292 | 297 |
293 ngx_queue_remove(&rn->queue); | 298 ngx_queue_remove(&rn->queue); |
294 | 299 |
295 for (ctx = rn->waiting; ctx; ctx = next) { | 300 for (ctx = rn->waiting; ctx; ctx = next) { |
296 next = ctx->next; | 301 next = ctx->next; |
664 } | 669 } |
665 | 670 |
666 ctx->event->handler = ngx_resolver_timeout_handler; | 671 ctx->event->handler = ngx_resolver_timeout_handler; |
667 ctx->event->data = rn; | 672 ctx->event->data = rn; |
668 ctx->event->log = r->log; | 673 ctx->event->log = r->log; |
669 ctx->ident = -1; | 674 rn->ident = -1; |
670 | 675 |
671 ngx_add_timer(ctx->event, ctx->timeout); | 676 ngx_add_timer(ctx->event, ctx->timeout); |
672 } | 677 } |
673 | 678 |
674 if (ngx_queue_empty(&r->name_resend_queue)) { | 679 if (ngx_queue_empty(&r->name_resend_queue)) { |
857 } | 862 } |
858 | 863 |
859 ctx->event->handler = ngx_resolver_timeout_handler; | 864 ctx->event->handler = ngx_resolver_timeout_handler; |
860 ctx->event->data = rn; | 865 ctx->event->data = rn; |
861 ctx->event->log = r->log; | 866 ctx->event->log = r->log; |
862 ctx->ident = -1; | 867 rn->ident = -1; |
863 | 868 |
864 ngx_add_timer(ctx->event, ctx->timeout); | 869 ngx_add_timer(ctx->event, ctx->timeout); |
865 | 870 |
866 if (ngx_queue_empty(resend_queue)) { | 871 if (ngx_queue_empty(resend_queue)) { |
867 ngx_add_timer(r->event, (ngx_msec_t) (r->resend_timeout * 1000)); | 872 ngx_add_timer(r->event, (ngx_msec_t) (r->resend_timeout * 1000)); |
2288 continue; | 2293 continue; |
2289 } | 2294 } |
2290 | 2295 |
2291 /* hash == node->key */ | 2296 /* hash == node->key */ |
2292 | 2297 |
2293 rn = (ngx_resolver_node_t *) node; | 2298 rn = ngx_resolver_node(node); |
2294 | 2299 |
2295 rc = ngx_memn2cmp(name->data, rn->name, name->len, rn->nlen); | 2300 rc = ngx_memn2cmp(name->data, rn->name, name->len, rn->nlen); |
2296 | 2301 |
2297 if (rc == 0) { | 2302 if (rc == 0) { |
2298 return rn; | 2303 return rn; |
2327 continue; | 2332 continue; |
2328 } | 2333 } |
2329 | 2334 |
2330 /* addr == node->key */ | 2335 /* addr == node->key */ |
2331 | 2336 |
2332 return (ngx_resolver_node_t *) node; | 2337 return ngx_resolver_node(node); |
2333 } | 2338 } |
2334 | 2339 |
2335 /* not found */ | 2340 /* not found */ |
2336 | 2341 |
2337 return NULL; | 2342 return NULL; |
2363 continue; | 2368 continue; |
2364 } | 2369 } |
2365 | 2370 |
2366 /* hash == node->key */ | 2371 /* hash == node->key */ |
2367 | 2372 |
2368 rn = (ngx_resolver_node_t *) node; | 2373 rn = ngx_resolver_node(node); |
2369 | 2374 |
2370 rc = ngx_memcmp(addr, &rn->addr6, 16); | 2375 rc = ngx_memcmp(addr, &rn->addr6, 16); |
2371 | 2376 |
2372 if (rc == 0) { | 2377 if (rc == 0) { |
2373 return rn; | 2378 return rn; |
2401 | 2406 |
2402 p = &temp->right; | 2407 p = &temp->right; |
2403 | 2408 |
2404 } else { /* node->key == temp->key */ | 2409 } else { /* node->key == temp->key */ |
2405 | 2410 |
2406 rn = (ngx_resolver_node_t *) node; | 2411 rn = ngx_resolver_node(node); |
2407 rn_temp = (ngx_resolver_node_t *) temp; | 2412 rn_temp = ngx_resolver_node(temp); |
2408 | 2413 |
2409 p = (ngx_memn2cmp(rn->name, rn_temp->name, rn->nlen, rn_temp->nlen) | 2414 p = (ngx_memn2cmp(rn->name, rn_temp->name, rn->nlen, rn_temp->nlen) |
2410 < 0) ? &temp->left : &temp->right; | 2415 < 0) ? &temp->left : &temp->right; |
2411 } | 2416 } |
2412 | 2417 |
2444 | 2449 |
2445 p = &temp->right; | 2450 p = &temp->right; |
2446 | 2451 |
2447 } else { /* node->key == temp->key */ | 2452 } else { /* node->key == temp->key */ |
2448 | 2453 |
2449 rn = (ngx_resolver_node_t *) node; | 2454 rn = ngx_resolver_node(node); |
2450 rn_temp = (ngx_resolver_node_t *) temp; | 2455 rn_temp = ngx_resolver_node(temp); |
2451 | 2456 |
2452 p = (ngx_memcmp(&rn->addr6, &rn_temp->addr6, 16) | 2457 p = (ngx_memcmp(&rn->addr6, &rn_temp->addr6, 16) |
2453 < 0) ? &temp->left : &temp->right; | 2458 < 0) ? &temp->left : &temp->right; |
2454 } | 2459 } |
2455 | 2460 |