backport a fix to 2.4.20.
Found this patch which should help with assertion (newsk->state != TCP_SYN_RECV) failed at tcp.c(2225)
Code:
diff -urN linux-2.4.20/net/ipv4/tcp_minisocks.c linux-2.4.21/net/ipv4/tcp_minisocks.c
--- linux-2.4.20/net/ipv4/tcp_minisocks.c 2002-11-28 15:53:15.000000000 -0 800
+++ linux-2.4.21/net/ipv4/tcp_minisocks.c 2003-06-13 07:51:39.000000000 -0 700
@@ -935,6 +938,12 @@
if (flg & (TCP_FLAG_RST|TCP_FLAG_SYN))
goto embryonic_reset;
+ /* ACK sequence verified above, just make sure ACK is
+ * set. If ACK not set, just silently drop the packet.
+ */
+ if (!(flg & TCP_FLAG_ACK))
+ return NULL;
+
/* If TCP_DEFER_ACCEPT is set, drop bare ACK. */
if (tp->defer_accept && TCP_SKB_CB(skb)->end_seq == req->rcv_isn+1) {
req->acked = 1;
But I've tought of something like quantum leap in kernel (2.4.20->.31) as there are so much bugfixes which I would like to have.
Anyway TNX. Will test this patch and confirm if it helped.