From 8e6f01ae49b947ef51ae82710c578b8ccf6e1d15 Mon Sep 17 00:00:00 2001 From: Marek Vavrusa <marek.vavrusa@nic.cz> Date: Tue, 3 Dec 2013 17:49:38 +0100 Subject: [PATCH] Fixed UDP query processing with mempool. --- src/knot/server/udp-handler.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/knot/server/udp-handler.c b/src/knot/server/udp-handler.c index bb7a5b387..22bae7890 100644 --- a/src/knot/server/udp-handler.c +++ b/src/knot/server/udp-handler.c @@ -143,6 +143,9 @@ int udp_handle(ns_proc_context_t *query_ctx, int fd, sockaddr_t *addr, strfrom, sockaddr_portnum(addr)); #endif + /* Create query processing context. */ + ns_proc_begin(query_ctx, NS_PROC_QUERY); + /* Input packet. */ uint16_t tx_len = tx->iov_len; int state = ns_proc_in(rx->iov_base, rx->iov_len, query_ctx); @@ -165,7 +168,7 @@ int udp_handle(ns_proc_context_t *query_ctx, int fd, sockaddr_t *addr, } /* Reset context. */ - ns_proc_reset(query_ctx); + ns_proc_finish(query_ctx); return KNOT_EOK; @@ -507,9 +510,6 @@ int udp_reader(iohandler_t *h, dthread_t *thread) query_ctx.flags |= NS_QUERY_NO_AXFR; query_ctx.flags |= NS_QUERY_NO_IXFR; - /* Create query processing context. */ - ns_proc_begin(&query_ctx, NS_PROC_QUERY); - /* Chose select as epoll/kqueue has larger overhead for a * single or handful of sockets. */ fd_set fds; @@ -571,9 +571,6 @@ int udp_reader(iohandler_t *h, dthread_t *thread) } } - /* Close query processing context. */ - ns_proc_finish(&query_ctx); - _udp_deinit(rq); ref_release((ref_t *)ref); mp_delete(query_ctx.mm.ctx); -- GitLab