MINOR: stream-int: Be sure to have a mux to do sends and receives

In si_cs_send() and si_cs_recv(), we explicitly test the connection's mux is
defined to proceed. For si_cs_recv(), it is probably a bit overkill. But
opportunistic sends are possible from the moment the server connection is
created. So it is safer to do this test.

This patch may be backported as far as 1.9 if necessary.
This commit is contained in:
Christopher Faulet 2020-07-30 09:26:46 +02:00
parent b4de420472
commit e96993b1f2

View File

@ -661,6 +661,10 @@ int si_cs_send(struct conn_stream *cs)
if (oc->flags & CF_SHUTW)
return 1;
/* we must wait because the mux is not installed yet */
if (!conn->mux)
return 0;
if (oc->pipe && conn->xprt->snd_pipe && conn->mux->snd_pipe) {
ret = conn->mux->snd_pipe(cs, oc->pipe);
if (ret > 0)
@ -1220,6 +1224,10 @@ int si_cs_recv(struct conn_stream *cs)
if (ic->flags & CF_SHUTR)
return 1;
/* we must wait because the mux is not installed yet */
if (!conn->mux)
return 0;
/* stop here if we reached the end of data */
if (cs->flags & CS_FL_EOS)
goto end_recv;