quic_on_quic_session_connected (ctx);
}
+static inline void
+quic_update_conn_ctx (quicly_conn_t * conn, quicly_context_t * quicly_context)
+{
+ /* we need to update the quicly_conn on migrate
+ * as it contains a pointer to the crypto context */
+ ptls_context_t **tls;
+ quicly_context_t **_quicly_context;
+ _quicly_context = (quicly_context_t **) conn;
+ *_quicly_context = quicly_context;
+ tls = (ptls_context_t **) quicly_get_tls (conn);
+ *tls = quicly_context->tls;
+}
+
static void
quic_receive_connection (void *arg)
{
quic_ctx_t *temp_ctx, *new_ctx;
clib_bihash_kv_16_8_t kv;
quicly_conn_t *conn;
+ quicly_context_t *quicly_context;
session_t *udp_session;
temp_ctx = arg;
quic_acquire_crypto_context (new_ctx);
conn = new_ctx->conn;
+ quicly_context = quic_get_quicly_ctx_from_ctx (new_ctx);
+ quic_update_conn_ctx (conn, quicly_context);
+
quic_store_conn_ctx (conn, new_ctx);
quic_make_connection_key (&kv, quicly_get_master_id (conn));
kv.value = ((u64) thread_index) << 32 | (u64) new_ctx_id;