MINOR: mux-quic-be: Attach the mux to the stream connector
Add missing stream initialization required for connections to servers. Modify qmux_init() to initialize a local stream. Attach the mux to the stream connector.
This commit is contained in:
parent
c6d79ebede
commit
8f79ac238c
@ -144,6 +144,7 @@ struct qc_stream_rxbuf {
|
|||||||
struct qcs {
|
struct qcs {
|
||||||
struct qcc *qcc;
|
struct qcc *qcc;
|
||||||
struct sedesc *sd;
|
struct sedesc *sd;
|
||||||
|
struct session *sess;
|
||||||
uint32_t flags; /* QC_SF_* */
|
uint32_t flags; /* QC_SF_* */
|
||||||
enum qcs_state st; /* QC_SS_* state */
|
enum qcs_state st; /* QC_SS_* state */
|
||||||
void *ctx; /* app-ops context */
|
void *ctx; /* app-ops context */
|
||||||
|
@ -134,6 +134,8 @@ static struct qcs *qcs_new(struct qcc *qcc, uint64_t id, enum qcs_type type)
|
|||||||
|
|
||||||
qcs->stream = NULL;
|
qcs->stream = NULL;
|
||||||
qcs->qcc = qcc;
|
qcs->qcc = qcc;
|
||||||
|
qcs->sd = NULL;
|
||||||
|
qcs->sess = NULL;
|
||||||
qcs->flags = QC_SF_NONE;
|
qcs->flags = QC_SF_NONE;
|
||||||
qcs->st = QC_SS_IDLE;
|
qcs->st = QC_SS_IDLE;
|
||||||
qcs->ctx = NULL;
|
qcs->ctx = NULL;
|
||||||
@ -3406,6 +3408,7 @@ static int qmux_init(struct connection *conn, struct proxy *prx,
|
|||||||
{
|
{
|
||||||
struct qcc *qcc;
|
struct qcc *qcc;
|
||||||
struct quic_transport_params *lparams, *rparams;
|
struct quic_transport_params *lparams, *rparams;
|
||||||
|
void *conn_ctx = conn->ctx;
|
||||||
|
|
||||||
TRACE_ENTER(QMUX_EV_QCC_NEW);
|
TRACE_ENTER(QMUX_EV_QCC_NEW);
|
||||||
|
|
||||||
@ -3534,6 +3537,22 @@ static int qmux_init(struct connection *conn, struct proxy *prx,
|
|||||||
/* Register conn for idle front closing. This is done once everything is allocated. */
|
/* Register conn for idle front closing. This is done once everything is allocated. */
|
||||||
if (!conn_is_back(conn))
|
if (!conn_is_back(conn))
|
||||||
LIST_APPEND(&mux_stopping_data[tid].list, &conn->stopping_list);
|
LIST_APPEND(&mux_stopping_data[tid].list, &conn->stopping_list);
|
||||||
|
else {
|
||||||
|
struct qcs *qcs;
|
||||||
|
struct stconn *sc = conn_ctx;
|
||||||
|
|
||||||
|
qcs = qcc_init_stream_local(qcc, 1);
|
||||||
|
if (!qcs) {
|
||||||
|
TRACE_PROTO("Cannot allocate a new locally initiated streeam",
|
||||||
|
QMUX_EV_QCC_NEW|QMUX_EV_QCC_ERR, conn);
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
sc_attach_mux(sc, qcs, conn);
|
||||||
|
qcs->sd = sc->sedesc;
|
||||||
|
qcs->sess = sess;
|
||||||
|
qcc->nb_sc++;
|
||||||
|
}
|
||||||
|
|
||||||
/* init read cycle */
|
/* init read cycle */
|
||||||
tasklet_wakeup(qcc->wait_event.tasklet);
|
tasklet_wakeup(qcc->wait_event.tasklet);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user