diff --git a/include/proto/connection.h b/include/proto/connection.h index 115e7aaa3..1e5fc9c9e 100644 --- a/include/proto/connection.h +++ b/include/proto/connection.h @@ -352,7 +352,8 @@ static inline void conn_sock_shutw(struct connection *c, int clean) /* don't perform a clean shutdown if we're going to reset or * if the shutr was already received. */ - if (conn_ctrl_ready(c) && !(c->flags & CO_FL_SOCK_RD_SH) && clean) + if (conn_ctrl_ready(c) && !(c->flags & CO_FL_SOCK_RD_SH) && clean && + !fdtab[c->handle.fd].linger_risk) shutdown(c->handle.fd, SHUT_WR); }