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