diff --git a/src/backend.c b/src/backend.c index b305ec0c8..4d47c9430 100644 --- a/src/backend.c +++ b/src/backend.c @@ -1581,6 +1581,14 @@ int connect_server(struct stream *s) if ((srv_cs->flags & CS_FL_EOI) && !(si_ic(&s->si[1])->flags & CF_EOI)) si_ic(&s->si[1])->flags |= (CF_EOI|CF_READ_PARTIAL); + /* catch all sync connect while the mux is not already installed */ + if (!srv_conn->mux && !(srv_conn->flags & CO_FL_WAIT_XPRT)) { + if (conn_create_mux(srv_conn) < 0) { + conn_full_close(srv_conn); + return SF_ERR_INTERNAL; + } + } + return SF_ERR_NONE; /* connection is OK */ }