Greetings,
I need some advice concerning tcp-timeout behaviour.
I've got two devices communicating with eachother via TCP. Pulling the network
cable from one of these devices interrpts the connection and it should timeout
(timeout is set to e.g. 30 seconds). Thats where the problem lies. The
connection does not timeout, because the keepalive_timer always gets reset by
this piece of code:
:code begin:
/* It is alive without keepalive 8) */
if (tp->packets_out || tp->send_head)
goto resched;
:code end:
(in tcp_timer.c -> tcp_keepalive_timer(unsigned long data))
A timeout never occurs and the connection will not terminate.
What is the reason for this behaviour (what exactly does this code do?) and is
there any solution to this. If I delete the above mentioned code, timeout works
fine. But changing proven kernel code is no appropriate solution. The kernel
version I use is 2.4.18.
Thx in advance
Daniel Stempel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/