From: Vladimír Čunát Date: Mon, 12 Nov 2018 15:37:07 +0000 (+0100) Subject: kr_request: move ::qsource.tcp to ::qsource.flags.tcp X-Git-Tag: v3.2.0~37^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20c59bbabdb5ef0d9b7ad64a9768ebcd467d8be5;p=thirdparty%2Fknot-resolver.git kr_request: move ::qsource.tcp to ::qsource.flags.tcp --- diff --git a/daemon/lua/kres-gen.lua b/daemon/lua/kres-gen.lua index c96037db3..4d6c07ffd 100644 --- a/daemon/lua/kres-gen.lua +++ b/daemon/lua/kres-gen.lua @@ -163,6 +163,9 @@ struct kr_rplan { knot_mm_t *pool; uint32_t next_uid; }; +struct kr_request_qsource_flags { + _Bool tcp : 1; +}; struct kr_request { struct kr_context *ctx; knot_pkt_t *answer; @@ -171,7 +174,7 @@ struct kr_request { const struct sockaddr *addr; const struct sockaddr *dst_addr; const knot_pkt_t *packet; - _Bool tcp; + struct kr_request_qsource_flags flags; size_t size; } qsource; struct { diff --git a/daemon/lua/kres-gen.sh b/daemon/lua/kres-gen.sh index afc1460f5..73e16b46c 100755 --- a/daemon/lua/kres-gen.sh +++ b/daemon/lua/kres-gen.sh @@ -74,6 +74,7 @@ genResType "knot_rrset_t" | sed 's/\/_owner/; s/\/_ttl/' struct kr_zonecut kr_qarray_t struct kr_rplan + struct kr_request_qsource_flags struct kr_request enum kr_rank struct kr_cache diff --git a/daemon/worker.c b/daemon/worker.c index 9a17058c9..040dffce1 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -321,12 +321,12 @@ static struct request_ctx *request_create(struct worker_ctx *worker, if (uv_udp_getsockname((uv_udp_t *)handle, dst_addr, &addr_len) == 0) { req->qsource.dst_addr = dst_addr; } - req->qsource.tcp = false; + req->qsource.flags.tcp = false; } else if (handle->type == UV_TCP) { if (uv_tcp_getsockname((uv_tcp_t *)handle, dst_addr, &addr_len) == 0) { req->qsource.dst_addr = dst_addr; } - req->qsource.tcp = true; + req->qsource.flags.tcp = true; } return ctx; diff --git a/lib/resolve.h b/lib/resolve.h index 4075d339a..598500171 100644 --- a/lib/resolve.h +++ b/lib/resolve.h @@ -174,6 +174,12 @@ struct kr_context knot_mm_t *pool; }; +/* Kept outside, because kres-gen.lua can't handle this depth + * (and lines here were too long anyway). */ +struct kr_request_qsource_flags { + bool tcp:1; /**< true if the request is on tcp; only meaningful if (dst_addr). */ +}; + /** * Name resolution request. * @@ -194,7 +200,7 @@ struct kr_request { /** Address that accepted the request. NULL for internal origin. */ const struct sockaddr *dst_addr; const knot_pkt_t *packet; - bool tcp; /**< true if the request is on tcp; only meaningful if (dst_addr) */ + struct kr_request_qsource_flags flags; /**< See definition above. */ size_t size; /**< query packet size */ } qsource; struct { diff --git a/modules/dnstap/dnstap.c b/modules/dnstap/dnstap.c index f0eae8280..520ce3384 100644 --- a/modules/dnstap/dnstap.c +++ b/modules/dnstap/dnstap.c @@ -121,7 +121,7 @@ static int dnstap_log(kr_layer_t *ctx) { } if (req->qsource.dst_addr) { - if (req->qsource.tcp) { + if (req->qsource.flags.tcp) { m.socket_protocol = DNSTAP__SOCKET_PROTOCOL__TCP; } else { m.socket_protocol = DNSTAP__SOCKET_PROTOCOL__UDP;