From: Marek VavruĊĦa Date: Sun, 3 May 2015 18:08:37 +0000 (+0200) Subject: lib/resolve: increased buflen to accomodate edns0/dnssec X-Git-Tag: v1.0.0-beta1~220^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d666b04eaf7ce2ce50aaea90692526219bed4ef;p=thirdparty%2Fknot-resolver.git lib/resolve: increased buflen to accomodate edns0/dnssec --- diff --git a/daemon/io.c b/daemon/io.c index 67b927cc3..298fa0d45 100644 --- a/daemon/io.c +++ b/daemon/io.c @@ -54,6 +54,7 @@ void udp_recv(uv_udp_t *handle, ssize_t nread, const uv_buf_t *buf, uv_loop_t *loop = handle->loop; struct worker_ctx *worker = loop->data; knot_pkt_t *query = knot_pkt_new(buf->base, nread, worker->mm); + query->max_size = sizeof(worker->bufs.wire); worker_exec(worker, (uv_handle_t *)handle, query, addr); knot_pkt_free(&query); } @@ -103,6 +104,7 @@ static void tcp_recv(uv_stream_t *handle, ssize_t nread, const uv_buf_t *buf) } knot_pkt_t *query = knot_pkt_new(buf->base + 2, nbytes, worker->mm); + query->max_size = sizeof(worker->bufs.wire); worker_exec(worker, (uv_handle_t *)handle, query, NULL); knot_pkt_free(&query); } diff --git a/daemon/worker.c b/daemon/worker.c index abd8cb5ea..5a812309f 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -85,7 +85,7 @@ static struct qr_task *qr_task_create(struct worker_ctx *worker, uv_handle_t *ha } /* Create buffers */ - knot_pkt_t *next_query = knot_pkt_new(NULL, KNOT_WIRE_MIN_PKTSIZE, &task->req.pool); + knot_pkt_t *next_query = knot_pkt_new(NULL, KNOT_EDNS_MAX_UDP_PAYLOAD, &task->req.pool); knot_pkt_t *answer = knot_pkt_new(NULL, KNOT_WIRE_MAX_PKTSIZE, &task->req.pool); if (!next_query || !answer) { mp_delete(pool.ctx); diff --git a/lib/resolve.c b/lib/resolve.c index 4ac474df1..a9580266a 100644 --- a/lib/resolve.c +++ b/lib/resolve.c @@ -141,7 +141,7 @@ int kr_resolve(struct kr_context* ctx, knot_pkt_t *answer, /* Create memory pool */ mm_ctx_t pool; mm_ctx_mempool(&pool, MM_DEFAULT_BLKSIZE); - knot_pkt_t *query = knot_pkt_new(NULL, KNOT_WIRE_MIN_PKTSIZE, &pool); + knot_pkt_t *query = knot_pkt_new(NULL, KNOT_EDNS_MAX_UDP_PAYLOAD, &pool); knot_pkt_t *resp = knot_pkt_new(NULL, KNOT_WIRE_MAX_PKTSIZE, &pool); if (!query || !resp) { mp_delete(pool.ctx);