diff --git a/src/stconn.c b/src/stconn.c index 3fa9dc827..bf9f7b0aa 100644 --- a/src/stconn.c +++ b/src/stconn.c @@ -1525,6 +1525,12 @@ int sc_conn_recv(struct stconn *sc) ret = 1; } + /* Ensure sc_conn_process() is called if waiting on handshake. */ + if (!(conn->flags & (CO_FL_WAIT_XPRT | CO_FL_EARLY_SSL_HS)) && + sc_ep_test(sc, SE_FL_WAIT_FOR_HS)) { + ret = 1; + } + if (sc->flags & (SC_FL_EOS|SC_FL_ERROR)) { /* No more data are expected at this stage */ se_have_no_more_data(sc->sedesc);