In si_connect(), only switch the strema_interface status to SI_ST_RDY if
we're reusing a connection and if the connection's mux is ready. Otherwise,
maybe we're reusing a connection that is not fully established yet, and may
fail, and setting SI_ST_RDY would mean we would not be able to retry to
connect.
This should be backported to 1.9 and 2.0.
This commit depends on
55234e33708c5a584fb9efea81d71ac47235d518.
/* try to reuse the existing connection, it will be
* confirmed once we can send on it.
*/
- si->state = SI_ST_RDY;
+ /* Is the connection really ready ? */
+ if (conn->mux->ctl(conn, MUX_STATUS, NULL) & MUX_STATUS_READY)
+ si->state = SI_ST_RDY;
+ else
+ si->state = SI_ST_CON;
}
/* needs src ip/port for logging */