Re: dst cache overflow

From: kuznet@ms2.inr.ac.ru
Date: Thu Jan 13 2000 - 12:00:48 EST


Hello!

> if ((1 << sk->state) &
> - (TCPF_ESTABLISHED|TCPF_SYN_SENT|TCPF_SYN_RECV|TCPF_CLOSE_WAIT)) {
> + (TCPF_ESTABLISHED|TCPF_SYN_SENT|TCPF_CLOSE_WAIT)) {

SYN-RECV sockets _are_ legal here. They occur as result of crossed SYNs.
We must send FIN of them.

> lock_sock(sk);
>
> /* Clear out any half completed packets. FIN if needed. */
> - if (tcp_close_state(sk,0))
> + if (tcp_close_state(sk,sk->state == TCP_CLOSE_WAIT))

Hey! Andi, second argument of tcp_close_state() means that socket
loses association to descriptor. You will break rsh now! It will
work only for 3 minutes.

Alexey

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Jan 15 2000 - 21:00:22 EST