MINOR: connection: remove some unneeded checks for CO_FL_SOCK_WR_SH

A few places in health checks and stream-int on the send path were still
checking for this flag. Now we do not and instead we rely on snd_buf()
to report the error if any.

It's worth noting that all 3 real muxes still use CO_FL_SOCK_WR_SH and
CO_FL_ERROR interchangeably at various places to decide to abort and/or
free their data. This should be clarified and fixed so that only
CO_FL_ERROR is used, and this will render the error paths simpler and
more accurate.
This commit is contained in:
Willy Tarreau 2020-01-23 18:25:23 +01:00
parent a8c7e8e3a8
commit f22758d12a
2 changed files with 1 additions and 14 deletions

View File

@ -765,13 +765,6 @@ static void __event_srv_chk_w(struct conn_stream *cs)
goto out_wakeup;
}
if (conn->flags & CO_FL_SOCK_WR_SH) {
/* if the output is closed, we can't do anything */
conn->flags |= CO_FL_ERROR;
chk_report_conn_err(check, 0, 0);
goto out_wakeup;
}
/* here, we know that the connection is established. That's enough for
* a pure TCP check.
*/
@ -3036,12 +3029,6 @@ static int tcpcheck_main(struct check *check)
b_reset(&check->bi);
}
if (conn->flags & CO_FL_SOCK_WR_SH) {
conn->flags |= CO_FL_ERROR;
chk_report_conn_err(check, 0, 0);
goto out_end_tcpcheck;
}
if (check->current_step->string_len >= b_size(&check->bo)) {
chunk_printf(&trash, "tcp-check send : string too large (%d) for buffer size (%u) at step %d",
check->current_step->string_len, (unsigned int)b_size(&check->bo),

View File

@ -668,7 +668,7 @@ int si_cs_send(struct conn_stream *cs)
return 0;
/* we might have been called just after an asynchronous shutw */
if (conn->flags & CO_FL_SOCK_WR_SH || oc->flags & CF_SHUTW)
if (oc->flags & CF_SHUTW)
return 1;
if (oc->pipe && conn->xprt->snd_pipe && conn->mux->snd_pipe) {