From: Vladimír Čunát Date: Fri, 7 Apr 2017 12:05:41 +0000 (+0200) Subject: iterator: don't retry if REFUSED X-Git-Tag: v1.2.6~9^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bc2a26702e6460aee65fe170671336d670ba3eb9;p=thirdparty%2Fknot-resolver.git iterator: don't retry if REFUSED It's unlikely to be a temporary condition, unless the reply was spoofed or something. Fixes val_cname_to_unsigned_fake_rrsig test. --- diff --git a/lib/layer/iterate.c b/lib/layer/iterate.c index cc78631d7..ada8f1c01 100644 --- a/lib/layer/iterate.c +++ b/lib/layer/iterate.c @@ -860,7 +860,6 @@ static int resolve(kr_layer_t *ctx, knot_pkt_t *pkt) case KNOT_RCODE_NOERROR: case KNOT_RCODE_NXDOMAIN: break; /* OK */ - case KNOT_RCODE_REFUSED: case KNOT_RCODE_SERVFAIL: { if (query->flags & QUERY_STUB) { break; } /* Pass through in stub mode */ VERBOSE_MSG("<= rcode: %s\n", rcode ? rcode->name : "??"); @@ -873,6 +872,7 @@ static int resolve(kr_layer_t *ctx, knot_pkt_t *pkt) return KR_STATE_CONSUME; } } + case KNOT_RCODE_REFUSED: case KNOT_RCODE_FORMERR: case KNOT_RCODE_NOTIMPL: VERBOSE_MSG("<= rcode: %s\n", rcode ? rcode->name : "??"); diff --git a/lib/resolve.c b/lib/resolve.c index 34915be29..edba5252d 100644 --- a/lib/resolve.c +++ b/lib/resolve.c @@ -1062,8 +1062,7 @@ int kr_resolve_produce(struct kr_request *request, struct sockaddr **dst, int *t ns_election: - /* If the query has got REFUSED & SERVFAIL, retry with current src up to KR_QUERY_NSRETRY_LIMIT. - * If the query has already selected a NS and is waiting for IPv4/IPv6 record, + /* If the query has already selected a NS and is waiting for IPv4/IPv6 record, * elect best address only, otherwise elect a completely new NS. */ if(++ns_election_iter >= KR_ITER_LIMIT) {