From 3b33b0cb176ae74fac25796640d09d312ca9c140 Mon Sep 17 00:00:00 2001 From: Karel Slany <karel.slany@nic.cz> Date: Fri, 27 May 2016 15:38:21 +0200 Subject: [PATCH] Fall back to TCP when receiving a valid BADCOOKIE response. --- modules/cookies/cookies.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/cookies/cookies.c b/modules/cookies/cookies.c index 302565deb..3c972db42 100644 --- a/modules/cookies/cookies.c +++ b/modules/cookies/cookies.c @@ -348,7 +348,14 @@ static int check_response(knot_layer_t *ctx, knot_pkt_t *pkt) DEBUG_MSG(NULL, "%s\n", "cookie_cached"); kr_cache_txn_commit(&txn); } + } + uint16_t rcode = knot_pkt_get_ext_rcode(pkt); + if (rcode == KNOT_RCODE_BADCOOKIE) { + /* TODO -- Fall back to TCP after a limited number of retries. */ + DEBUG_MSG(NULL, "%s'n", "falling back to TCP"); + qry->flags |= QUERY_TCP; + return KNOT_STATE_PRODUCE; } print_packet_dflt(pkt); -- GitLab