From: Libor Peltan Date: Mon, 7 Sep 2020 15:42:31 +0000 (+0200) Subject: axfr: split multi-mesage responses to 16kib -- compression X-Git-Tag: v3.1.0~354^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e009c2007e51dae72bc3371a3d56fad5749bb0d7;p=thirdparty%2Fknot-dns.git axfr: split multi-mesage responses to 16kib -- compression --- diff --git a/src/knot/nameserver/axfr.c b/src/knot/nameserver/axfr.c index a96f6d6d21..410db29598 100644 --- a/src/knot/nameserver/axfr.c +++ b/src/knot/nameserver/axfr.c @@ -57,6 +57,12 @@ static int axfr_put_rrsets(knot_pkt_t *pkt, zone_node_t *node, state->cur_rrset = i; return ret; } + if (pkt->size > KNOT_WIRE_PTR_MAX) { + // optimization: once the XFR DNS message is > 16 KiB, compression + // is limited. Better wrap to next message. + state->cur_rrset = i + 1; + return KNOT_ESPACE; + } } state->cur_rrset = 0;