]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
lib: use 'resolved' flag instead of popping query directly
authorMarek Vavruša <marek.vavrusa@nic.cz>
Thu, 12 Mar 2015 09:44:34 +0000 (10:44 +0100)
committerMarek Vavruša <marek.vavrusa@nic.cz>
Thu, 12 Mar 2015 09:44:34 +0000 (10:44 +0100)
lib/layer/itercache.c
modules/hints/hints.c

index 6652a757152dcf21179e5f96abe7903ca82223db..45868e164c8c7b81e9c43a8c0a3456155af63ee1 100644 (file)
@@ -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;
        }
 
index cfbe96fbd2770dcca4ea49ab492e24f93495661b..2493f9ebb8dc48c587b3c23727b04300d4307725 100644 (file)
@@ -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, &param->answer->mm);
                        callback(&rr, 0, param);
-                       kr_rplan_pop(param->rplan, cur);
+
+                       cur->resolved = true;
                        return KNOT_NS_PROC_DONE;
                }
        }