summaryrefslogtreecommitdiffstats
path: root/src/knot/server/handler.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/knot/server/handler.h35
1 files changed, 24 insertions, 11 deletions
diff --git a/src/knot/server/handler.h b/src/knot/server/handler.h
index 0f29988..4b63a0c 100644
--- a/src/knot/server/handler.h
+++ b/src/knot/server/handler.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2024 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -20,6 +20,7 @@
#include "knot/query/layer.h"
#include "knot/server/server.h"
#include "libknot/xdp/tcp_iobuf.h"
+#include "libknot/quic/tls.h"
#ifdef ENABLE_QUIC
#include "libknot/quic/quic.h"
@@ -44,18 +45,33 @@ inline static knotd_qdata_params_t params_init(knotd_query_proto_t proto,
.remote = (const struct sockaddr_storage *)remote,
.local = (const struct sockaddr_storage *)local,
.socket = sock,
+ .thread_id = thread_id,
.server = server,
- .thread_id = thread_id
+ .quic_stream = -1,
};
return params;
}
-inline static void params_update(knotd_qdata_params_t *params, uint32_t rtt,
- struct knot_quic_conn *conn)
+inline static void params_update_tcp(knotd_qdata_params_t *params, uint32_t rtt)
{
params->measured_rtt = rtt;
+}
+
+#ifdef ENABLE_QUIC
+inline static void params_update_quic(knotd_qdata_params_t *params, uint32_t rtt,
+ knot_quic_conn_t *conn, int64_t stream_id)
+{
params->quic_conn = conn;
+ params->quic_stream = stream_id;
+ params->measured_rtt = rtt;
+}
+#endif // ENABLE_QUIC
+
+inline static void params_update_tls(knotd_qdata_params_t *params,
+ knot_tls_conn_t *conn)
+{
+ params->tls_conn = conn;
}
#ifdef ENABLE_XDP
@@ -64,8 +80,9 @@ inline static knotd_qdata_params_t params_xdp_init(int sock, server_t *server,
{
knotd_qdata_params_t params = {
.socket = sock,
+ .thread_id = thread_id,
.server = server,
- .thread_id = thread_id
+ .quic_stream = -1,
};
return params;
@@ -73,16 +90,12 @@ inline static knotd_qdata_params_t params_xdp_init(int sock, server_t *server,
inline static void params_xdp_update(knotd_qdata_params_t *params,
knotd_query_proto_t proto,
- struct knot_xdp_msg *msg,
- uint32_t rtt,
- struct knot_quic_conn *conn)
+ struct knot_xdp_msg *msg)
{
params->proto = proto;
params->remote = (struct sockaddr_storage *)&msg->ip_from;
params->local = (struct sockaddr_storage *)&msg->ip_to;
params->xdp_msg = msg;
- params->measured_rtt = rtt;
- params->quic_conn = conn;
}
#endif // ENABLE_XDP
@@ -107,7 +120,7 @@ void handle_udp_reply(knotd_qdata_params_t *params, knot_layer_t *layer,
#ifdef ENABLE_QUIC
void handle_quic_streams(knot_quic_conn_t *conn, knotd_qdata_params_t *params,
- knot_layer_t *layer, void *msg);
+ knot_layer_t *layer);
#endif // ENABLE_QUIC
void log_swept(knot_sweep_stats_t *stats, bool tcp);