From: Marek VavruĊĦa Date: Wed, 22 Jul 2015 10:47:20 +0000 (+0200) Subject: lib/resolve: use maximum unfragmented UDP payload for iter as default X-Git-Tag: v1.0.0-beta1~63 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=926a41fcd14180a308d4029e9e9fa402aff90ee8;p=thirdparty%2Fknot-resolver.git lib/resolve: use maximum unfragmented UDP payload for iter as default this is a saner default for large answers. instead of waiting for probably lost/thrown away fragmented packet, do the query over TCP instead --- diff --git a/lib/defines.h b/lib/defines.h index 9709380c9..d3f3f76fd 100644 --- a/lib/defines.h +++ b/lib/defines.h @@ -36,12 +36,12 @@ static inline int __attribute__((__cold__)) kr_error(int x) { * @cond internal */ #define KR_CONN_RTT_MAX 3000 /* Timeout for network activity */ -#define KR_ITER_LIMIT 50 /* Built-in iterator limit */ +#define KR_ITER_LIMIT 50 /* Built-in iterator limit */ /* * Defines. */ #define KR_DNS_PORT 53 #define KR_EDNS_VERSION 0 -#define KR_EDNS_PAYLOAD 4096 +#define KR_EDNS_PAYLOAD 1452 /* Maximum payload for unfragmented UDP/v6 */ /* @endcond */ diff --git a/lib/resolve.c b/lib/resolve.c index 85b968e7f..75f0d7bb4 100644 --- a/lib/resolve.c +++ b/lib/resolve.c @@ -290,7 +290,7 @@ int kr_resolve(struct kr_context* ctx, knot_pkt_t *answer, .ctx = mp_new (KNOT_WIRE_MAX_PKTSIZE), .alloc = (mm_alloc_t) mp_alloc }; - knot_pkt_t *query = knot_pkt_new(NULL, KNOT_EDNS_MAX_UDP_PAYLOAD, &pool); + knot_pkt_t *query = knot_pkt_new(NULL, KR_EDNS_PAYLOAD, &pool); knot_pkt_t *resp = knot_pkt_new(NULL, KNOT_WIRE_MAX_PKTSIZE, &pool); if (!query || !resp) { mp_delete(pool.ctx);