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;
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 {
struct kr_zonecut
kr_qarray_t
struct kr_rplan
+ struct kr_request_qsource_flags
struct kr_request
enum kr_rank
struct kr_cache
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;
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.
*
/** 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 {
}
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;