MEDIUM: mux-pt: Don't always set a final error on SE on the sending path

SE_FL_ERROR must be set on the SE descriptor only if EOS was already
reported. So call se_fl_set_error() function to properly the
ERR_PENDING/ERROR flags. It is not really a bug because the mux-pt is really
simple. But it is better to do it now the right way.
This commit is contained in:
Christopher Faulet 2022-10-05 11:01:56 +02:00
parent 31da34d1e7
commit b65af26e19

View File

@ -557,7 +557,7 @@ static size_t mux_pt_snd_buf(struct stconn *sc, struct buffer *buf, size_t count
b_del(buf, ret);
if (conn->flags & CO_FL_ERROR) {
se_fl_set(ctx->sd, SE_FL_ERROR);
se_fl_set_error(ctx->sd);
TRACE_DEVEL("error on connection", PT_EV_TX_DATA|PT_EV_CONN_ERR, conn, sc);
}
@ -625,7 +625,7 @@ static int mux_pt_snd_pipe(struct stconn *sc, struct pipe *pipe)
ret = conn->xprt->snd_pipe(conn, conn->xprt_ctx, pipe);
if (conn->flags & CO_FL_ERROR) {
se_fl_set(ctx->sd, SE_FL_ERROR);
se_fl_set_error(ctx->sd);
TRACE_DEVEL("error on connection", PT_EV_TX_DATA|PT_EV_CONN_ERR, conn, sc);
}