CLEANUP: tcp: silent-drop: only drain the connection when quick-ack is disabled

The conn_sock_drain() call is only there to force the system to ACK
pending data in case of TCP_QUICKACK so that the client doesn't retransmit,
otherwise it leads to a real RST making the feature useless. There's no
point in draining the connection when quick ack cannot be disabled, so
let's move the call inside the ifdef part.
This commit is contained in:
Willy Tarreau 2015-09-29 18:15:01 +02:00
parent f50ec0fdbc
commit fc2a2d97d6

View File

@ -1431,8 +1431,10 @@ static enum act_return tcp_exec_action_silent_drop(struct act_rule *rule, struct
if (!conn_ctrl_ready(conn))
goto out;
conn_sock_drain(conn);
#ifdef TCP_QUICKACK
/* drain is needed only to send the quick ACK */
conn_sock_drain(conn);
/* re-enable quickack if it was disabled to ack all data and avoid
* retransmits from the client that might trigger a real reset.
*/