]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
Add query packet size to kr_request
authorVicky Shrestha <vicky@geeks.net.np>
Sat, 16 Dec 2017 04:37:15 +0000 (20:37 -0800)
committerPetr Špaček <petr.spacek@nic.cz>
Thu, 4 Jan 2018 09:32:43 +0000 (10:32 +0100)
This is useful when we do logging from the finish layer

daemon/lua/kres-gen.lua
daemon/worker.c
lib/resolve.h

index b76e5eb17f233b91c218a44f9f8a279541d0215f..d1bb444dd3fba6c5d230e2d9c4eace6a6983a407 100644 (file)
@@ -145,6 +145,7 @@ struct kr_request {
                const knot_pkt_t *packet;
                const knot_rrset_t *opt;
                _Bool tcp;
+               size_t size;
        } qsource;
        struct {
                unsigned int rtt;
index 3b8f0959a12053eed37c13a28a2892bb61ba6171..93fdb6903adda630dfe8fd40b36b408ad26836b1 100644 (file)
@@ -285,6 +285,7 @@ static struct qr_task *qr_task_create(struct worker_ctx *worker, uv_handle_t *ha
        task->req.qsource.dst_addr = NULL;
        task->req.qsource.packet = NULL;
        task->req.qsource.opt = NULL;
+       task->req.qsource.size = 0;
        /* Remember query source addr */
        if (addr) {
                size_t addr_len = sizeof(struct sockaddr_in);
@@ -365,6 +366,9 @@ static int qr_task_start(struct qr_task *task, knot_pkt_t *query)
                answer_max = MAX(knot_edns_get_payload(query->opt_rr), KNOT_WIRE_MIN_PKTSIZE);
        }
 
+       /* Remember query packet size */
+       task->req.qsource.size = query->size;
+
        knot_pkt_t *answer = knot_pkt_new(NULL, answer_max, &task->req.pool);
        if (!answer) {
                return kr_error(ENOMEM);
index ab7b53e191159468de9e7ec930a3a97e9ceb38f8..41c6433ff015ba8d8d3f28b0cab996a0a1901d61 100644 (file)
@@ -189,6 +189,7 @@ struct kr_request {
                const knot_pkt_t *packet;
                const knot_rrset_t *opt;
                bool tcp; /**< true if the request is on tcp; only meaningful if (dst_addr) */
+               size_t size; /**< query packet size */
        } qsource;
        struct {
                unsigned rtt;                  /**< Current upstream RTT */