From 6300c7a3d037dbff7f06ef27a3ce060d7e11c7cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Vavru=C5=A1a?= Date: Wed, 4 Jun 2014 11:01:37 +0200 Subject: [PATCH] ixfr: rewrite QTYPE for AXFR fallback --- src/knot/nameserver/ixfr.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/knot/nameserver/ixfr.c b/src/knot/nameserver/ixfr.c index 28b293295..247c95f7a 100644 --- a/src/knot/nameserver/ixfr.c +++ b/src/knot/nameserver/ixfr.c @@ -567,6 +567,7 @@ int ixfr_query(knot_pkt_t *pkt, struct query_data *qdata) int ret = KNOT_EOK; struct timeval now = {0}; struct ixfr_proc *ixfr = (struct ixfr_proc*)qdata->ext; + knot_pkt_t *query = qdata->query; /* If IXFR is disabled, respond with SOA. */ if (qdata->param->proc_flags & NS_QUERY_NO_IXFR) { @@ -589,6 +590,10 @@ int ixfr_query(knot_pkt_t *pkt, struct query_data *qdata) case KNOT_ERANGE: /* No history -> AXFR. */ case KNOT_ENOENT: IXFROUT_LOG(LOG_INFO, "Incomplete history, fallback to AXFR."); + knot_pkt_clear(pkt); + knot_pkt_put_question(pkt, knot_pkt_qname(query), + knot_pkt_qclass(query), + KNOT_RRTYPE_AXFR); qdata->packet_type = KNOT_QUERY_AXFR; /* Solve as AXFR. */ return axfr_query_process(pkt, qdata); default: /* Server errors. */ -- GitLab