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);
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);
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 */