SHOW_FLAG(f, CO_FL_ERROR);
SHOW_FLAG(f, CO_FL_SOCK_WR_SH);
SHOW_FLAG(f, CO_FL_SOCK_RD_SH);
- SHOW_FLAG(f, CO_FL_DATA_WR_SH);
SHOW_FLAG(f, CO_FL_ADDR_TO_SET);
SHOW_FLAG(f, CO_FL_ADDR_FROM_SET);
SHOW_FLAG(f, CO_FL_WAIT_ROOM);
static inline void conn_data_shutw(struct connection *c)
{
- c->flags |= CO_FL_DATA_WR_SH;
__conn_data_stop_send(c);
/* clean data-layer shutdown */
static inline void conn_data_shutw_hard(struct connection *c)
{
- c->flags |= CO_FL_DATA_WR_SH;
__conn_data_stop_send(c);
/* unclean data-layer shutdown */
/* unused : 0x00004000 */
/* unused : 0x00008000 */
+ /* unused : 0x00010000 */
+ /* unused : 0x00020000 */
/* flags used to remember what shutdown have been performed/reported */
- /* unused : 0x00010000 */
- CO_FL_DATA_WR_SH = 0x00020000, /* DATA layer asked for shutw */
CO_FL_SOCK_RD_SH = 0x00040000, /* SOCK layer was notified about shutr/read0 */
CO_FL_SOCK_WR_SH = 0x00080000, /* SOCK layer asked for shutw */
goto out_wakeup;
}
- if (conn->flags & (CO_FL_SOCK_WR_SH | CO_FL_DATA_WR_SH)) {
+ 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(conn, 0, 0);
check->bi->i = 0;
}
- if (conn->flags & (CO_FL_SOCK_WR_SH | CO_FL_DATA_WR_SH)) {
+ if (conn->flags & CO_FL_SOCK_WR_SH) {
conn->flags |= CO_FL_ERROR;
chk_report_conn_err(conn, 0, 0);
goto out_end_tcpcheck;
/* when we're here, we already know that there is no spliced
* data left, and that there are sendable buffered data.
*/
- if (!(conn->flags & (CO_FL_ERROR | CO_FL_SOCK_WR_SH | CO_FL_DATA_WR_SH | CO_FL_HANDSHAKE))) {
+ if (!(conn->flags & (CO_FL_ERROR | CO_FL_SOCK_WR_SH | CO_FL_HANDSHAKE)) && !(oc->flags & CF_SHUTW)) {
/* check if we want to inform the kernel that we're interested in
* sending more data after this call. We want this if :
* - we're about to close after this last send and want to merge
if ((!(oc->flags & (CF_NEVER_WAIT|CF_SEND_DONTWAIT)) &&
((oc->to_forward && oc->to_forward != CHN_INFINITE_FORWARD) ||
- (oc->flags & CF_EXPECT_MORE))) ||
- ((oc->flags & (CF_SHUTW|CF_SHUTW_NOW)) == CF_SHUTW_NOW))
+ (oc->flags & CF_EXPECT_MORE))) || (oc->flags & CF_SHUTW_NOW))
send_flag |= CO_SFL_MSG_MORE;
if (oc->flags & CF_STREAMER)