From: Marek VavruĊĦa Date: Thu, 12 Mar 2015 09:44:34 +0000 (+0100) Subject: lib: use 'resolved' flag instead of popping query directly X-Git-Tag: v1.0.0-beta1~301^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54819fe25647638b933c145ebd403d46dec85369;p=thirdparty%2Fknot-resolver.git lib: use 'resolved' flag instead of popping query directly --- diff --git a/lib/layer/itercache.c b/lib/layer/itercache.c index 6652a7571..45868e164 100644 --- a/lib/layer/itercache.c +++ b/lib/layer/itercache.c @@ -95,7 +95,7 @@ static int read_cache(knot_layer_t *ctx, knot_pkt_t *pkt) int state = read_cache_rr(txn, &cache_rr, timestamp, callback, param); if (state == KNOT_NS_PROC_DONE) { DEBUG_MSG("=> satisfied from cache\n"); - kr_rplan_pop(param->rplan, cur); + cur->resolved = true; return state; } @@ -110,7 +110,7 @@ static int read_cache(knot_layer_t *ctx, knot_pkt_t *pkt) } } - kr_rplan_pop(param->rplan, cur); + cur->resolved = true; return KNOT_NS_PROC_DONE; } diff --git a/modules/hints/hints.c b/modules/hints/hints.c index cfbe96fbd..2493f9ebb 100644 --- a/modules/hints/hints.c +++ b/modules/hints/hints.c @@ -79,13 +79,13 @@ static int query(knot_layer_t *ctx, knot_pkt_t *pkt) struct hint_pair *pair = NULL; WALK_LIST(pair, g_map->list) { - DEBUG_MSG("scanning '%s'\n", knot_dname_to_str_alloc(pair->name)); if (knot_dname_is_equal(qname, pair->name)) { DEBUG_MSG("found hint '%s'\n", pair->addr); int addr_type = strchr(pair->addr, ':') ? AF_INET6 : AF_INET; if ((addr_type == AF_INET) != (qtype == KNOT_RRTYPE_A)) { continue; } + knot_rrset_t rr; knot_rrset_init(&rr, pair->name, qtype, KNOT_CLASS_IN); struct sockaddr_storage addr; @@ -94,7 +94,8 @@ static int query(knot_layer_t *ctx, knot_pkt_t *pkt) uint8_t *raw_addr = sockaddr_raw(&addr, &addr_len); knot_rrset_add_rdata(&rr, raw_addr, addr_len, 0, ¶m->answer->mm); callback(&rr, 0, param); - kr_rplan_pop(param->rplan, cur); + + cur->resolved = true; return KNOT_NS_PROC_DONE; } }