MINOR: quic: Move conn_prepare() to ->accept_conn() callback
The xprt context must be initialized before receiving further packets from
the I/O dgram handler.
diff --git a/src/quic_sock.c b/src/quic_sock.c
index a2c4bec..ad8ae6a 100644
--- a/src/quic_sock.c
+++ b/src/quic_sock.c
@@ -35,9 +35,6 @@
struct session *sess;
cli_conn->proxy_netns = l->rx.settings->netns;
- if (conn_prepare(cli_conn, l->rx.proto, l->bind_conf->xprt) < 0)
- goto out_free_conn;
-
/* This flag is ordinarily set by conn_ctrl_init() which cannot
* be called for now.
*/
@@ -113,14 +110,19 @@
/* XXX Should not be there. */
l->accept = quic_session_accept;
+ /* We need the xprt context before accepting (->accept()) the connection:
+ * we may receive packet before this connection acception.
+ */
+ if (conn_prepare(cli_conn, l->rx.proto, l->bind_conf->xprt) < 0)
+ goto out_free_conn;
return 1;
out_free_conn:
+ qc->conn = NULL;
conn_stop_tracking(cli_conn);
conn_xprt_close(cli_conn);
conn_free(cli_conn);
- qc->conn = NULL;
out:
return 0;