From: Libor Peltan Date: Tue, 28 Jun 2022 12:34:26 +0000 (+0200) Subject: xdp-quic: hide ngtcp2 structure from libknot headers X-Git-Tag: v3.3.dev~70^2~53 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9bddda00a2930cf9d216bc268f3d4063ea7c1583;p=thirdparty%2Fknot-dns.git xdp-quic: hide ngtcp2 structure from libknot headers --- diff --git a/src/libknot/xdp/quic.c b/src/libknot/xdp/quic.c index 3a7d8e86b6..ea5334e693 100644 --- a/src/libknot/xdp/quic.c +++ b/src/libknot/xdp/quic.c @@ -255,11 +255,12 @@ static int tls_init_conn_session(knot_xquic_conn_t *conn, bool server) gnutls_record_set_max_early_data_size(conn->tls_session, 0xffffffffu); - conn->conn_ref = (ngtcp2_crypto_conn_ref) { + conn->conn_ref = (nc_conn_ref_placeholder_t) { .get_conn = get_conn, .user_data = conn }; + _Static_assert(sizeof(nc_conn_ref_placeholder_t) == sizeof(ngtcp2_crypto_conn_ref), "invalid placeholder for conn_ref"); gnutls_session_set_ptr(conn->tls_session, &conn->conn_ref); if (server) { diff --git a/src/libknot/xdp/quic_conn.h b/src/libknot/xdp/quic_conn.h index ccb9578c3f..54f5cc781c 100644 --- a/src/libknot/xdp/quic_conn.h +++ b/src/libknot/xdp/quic_conn.h @@ -21,8 +21,6 @@ #include #include -#include // TODO private structure? - #define MAX_STREAMS_PER_CONN 10 struct ngtcp2_cid; // declaration taken from wherever in ngtcp2 @@ -36,6 +34,11 @@ typedef struct knot_xquic_ucw_list { knot_xquic_ucw_node_t head, tail; } knot_xquic_ucw_list_t; +typedef struct { + void *get_conn; + void *user_data; +} nc_conn_ref_placeholder_t; + typedef struct { knot_xquic_ucw_node_t node; size_t len; @@ -56,7 +59,7 @@ typedef struct { typedef struct knot_xquic_conn { knot_xquic_ucw_node_t timeout; // MUST be first field of the struct - ngtcp2_crypto_conn_ref conn_ref; // TODO private structure? + nc_conn_ref_placeholder_t conn_ref; // placeholder for internal struct ngtcp2_crypto_conn_ref struct ngtcp2_conn *conn;