tcp: avoid spurious SYN flood detection at listen() time
At listen() time, there is a small window where listener is visible with a zero backlog, triggering a spurious "Possible SYN flooding on port" message. Nothing prevents us from setting the correct backlog. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c2f34a65a6
commit
f985c65c90
|
@ -312,7 +312,7 @@ static inline unsigned int inet_csk_listen_poll(const struct sock *sk)
|
|||
(POLLIN | POLLRDNORM) : 0;
|
||||
}
|
||||
|
||||
int inet_csk_listen_start(struct sock *sk, const int nr_table_entries);
|
||||
int inet_csk_listen_start(struct sock *sk, int backlog);
|
||||
void inet_csk_listen_stop(struct sock *sk);
|
||||
|
||||
void inet_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr);
|
||||
|
|
|
@ -727,14 +727,14 @@ void inet_csk_prepare_forced_close(struct sock *sk)
|
|||
}
|
||||
EXPORT_SYMBOL(inet_csk_prepare_forced_close);
|
||||
|
||||
int inet_csk_listen_start(struct sock *sk, const int nr_table_entries)
|
||||
int inet_csk_listen_start(struct sock *sk, int backlog)
|
||||
{
|
||||
struct inet_connection_sock *icsk = inet_csk(sk);
|
||||
struct inet_sock *inet = inet_sk(sk);
|
||||
|
||||
reqsk_queue_alloc(&icsk->icsk_accept_queue);
|
||||
|
||||
sk->sk_max_ack_backlog = 0;
|
||||
sk->sk_max_ack_backlog = backlog;
|
||||
sk->sk_ack_backlog = 0;
|
||||
inet_csk_delack_init(sk);
|
||||
|
||||
|
|
Loading…
Reference in New Issue