comparison src/core/ngx_resolver.c @ 6372:a6a5bacf6b74

Resolver: style. Use the original query name in error and debug messages when processing PTR responses.
author Ruslan Ermilov <ru@nginx.com>
date Thu, 17 Dec 2015 17:30:22 +0300
parents 33c4d319f08f
children c94aba230a5a
comparison
equal deleted inserted replaced
6371:33c4d319f08f 6372:a6a5bacf6b74
2394 ngx_resolver_process_ptr(ngx_resolver_t *r, u_char *buf, size_t n, 2394 ngx_resolver_process_ptr(ngx_resolver_t *r, u_char *buf, size_t n,
2395 ngx_uint_t ident, ngx_uint_t code, ngx_uint_t nan) 2395 ngx_uint_t ident, ngx_uint_t code, ngx_uint_t nan)
2396 { 2396 {
2397 char *err; 2397 char *err;
2398 size_t len; 2398 size_t len;
2399 u_char text[NGX_SOCKADDR_STRLEN];
2400 in_addr_t addr; 2399 in_addr_t addr;
2401 int32_t ttl; 2400 int32_t ttl;
2402 ngx_int_t octet; 2401 ngx_int_t octet;
2403 ngx_str_t name; 2402 ngx_str_t name;
2404 ngx_uint_t mask, type, class, qident, a, i, start; 2403 ngx_uint_t mask, type, class, qident, a, i, start;
2411 uint32_t hash; 2410 uint32_t hash;
2412 ngx_int_t digit; 2411 ngx_int_t digit;
2413 struct in6_addr addr6; 2412 struct in6_addr addr6;
2414 #endif 2413 #endif
2415 2414
2416 if (ngx_resolver_copy(r, NULL, buf, 2415 if (ngx_resolver_copy(r, &name, buf,
2417 buf + sizeof(ngx_resolver_hdr_t), buf + n) 2416 buf + sizeof(ngx_resolver_hdr_t), buf + n)
2418 != NGX_OK) 2417 != NGX_OK)
2419 { 2418 {
2420 return; 2419 return;
2421 } 2420 }
2422 2421
2422 ngx_log_debug1(NGX_LOG_DEBUG_CORE, r->log, 0, "resolver qs:%V", &name);
2423
2423 /* AF_INET */ 2424 /* AF_INET */
2424 2425
2425 addr = 0; 2426 addr = 0;
2426 i = sizeof(ngx_resolver_hdr_t); 2427 i = sizeof(ngx_resolver_hdr_t);
2427 2428
2445 rn = ngx_resolver_lookup_addr(r, addr); 2446 rn = ngx_resolver_lookup_addr(r, addr);
2446 2447
2447 tree = &r->addr_rbtree; 2448 tree = &r->addr_rbtree;
2448 expire_queue = &r->addr_expire_queue; 2449 expire_queue = &r->addr_expire_queue;
2449 2450
2450 addr = htonl(addr);
2451 name.len = ngx_inet_ntop(AF_INET, &addr, text, NGX_SOCKADDR_STRLEN);
2452 name.data = text;
2453
2454 goto valid; 2451 goto valid;
2455 } 2452 }
2456 2453
2457 invalid_in_addr_arpa: 2454 invalid_in_addr_arpa:
2458 2455
2493 rn = ngx_resolver_lookup_addr6(r, &addr6, hash); 2490 rn = ngx_resolver_lookup_addr6(r, &addr6, hash);
2494 2491
2495 tree = &r->addr6_rbtree; 2492 tree = &r->addr6_rbtree;
2496 expire_queue = &r->addr6_expire_queue; 2493 expire_queue = &r->addr6_expire_queue;
2497 2494
2498 name.len = ngx_inet6_ntop(addr6.s6_addr, text, NGX_SOCKADDR_STRLEN);
2499 name.data = text;
2500
2501 goto valid; 2495 goto valid;
2502 } 2496 }
2503 2497
2504 invalid_ip6_arpa: 2498 invalid_ip6_arpa:
2505 #endif 2499 #endif
2506 2500
2507 ngx_log_error(r->log_level, r->log, 0, 2501 ngx_log_error(r->log_level, r->log, 0,
2508 "invalid in-addr.arpa or ip6.arpa name in DNS response"); 2502 "invalid in-addr.arpa or ip6.arpa name in DNS response");
2503 ngx_resolver_free(r, name.data);
2509 return; 2504 return;
2510 2505
2511 valid: 2506 valid:
2512 2507
2513 if (rn == NULL || rn->query == NULL) { 2508 if (rn == NULL || rn->query == NULL) {
2514 ngx_log_error(r->log_level, r->log, 0, 2509 ngx_log_error(r->log_level, r->log, 0,
2515 "unexpected response for %V", &name); 2510 "unexpected response for %V", &name);
2511 ngx_resolver_free(r, name.data);
2516 goto failed; 2512 goto failed;
2517 } 2513 }
2518 2514
2519 qident = (rn->query[0] << 8) + rn->query[1]; 2515 qident = (rn->query[0] << 8) + rn->query[1];
2520 2516
2521 if (ident != qident) { 2517 if (ident != qident) {
2522 ngx_log_error(r->log_level, r->log, 0, 2518 ngx_log_error(r->log_level, r->log, 0,
2523 "wrong ident %ui response for %V, expect %ui", 2519 "wrong ident %ui response for %V, expect %ui",
2524 ident, &name, qident); 2520 ident, &name, qident);
2521 ngx_resolver_free(r, name.data);
2525 goto failed; 2522 goto failed;
2526 } 2523 }
2524
2525 ngx_resolver_free(r, name.data);
2527 2526
2528 if (code == 0 && nan == 0) { 2527 if (code == 0 && nan == 0) {
2529 code = NGX_RESOLVE_NXDOMAIN; 2528 code = NGX_RESOLVE_NXDOMAIN;
2530 } 2529 }
2531 2530