Hi Have included a patch fix for the x25 module in the latest stable version of the kernel.
Problem: When a user-space server application calls bind on a socket, then in kernel space this bound socket is considered 'x25-linked' and the SOCK_ZAPPED flag is unset.(As in x25_bind()/af_x25.c). Now when a user-space client application attempts to connect to the server on the listening socket, if the kernel accepts this in-coming call, then it returns a new socket to userland and attempts to reply to the caller. The reply/x25_sendmsg() will fail, because the new socket created on call-accept has its SOCK_ZAPPED flag set by x25_make_new(). (sock_init_data() called by x25_alloc_socket() called by x25_make_new() sets the flag to SOCK_ZAPPED)). Fix: Using the sock_copy_flag() routine available in sock.h fixes this. Tested on 32 and 64 bit kernels with x25 over tcp. I hope this fix can be applied to the next release of the kernel. Many Thanks Shaun Signed-off-by:Shaun Pereira <[EMAIL PROTECTED]> diff -uprN -X dontdiff linux-2.6.14.5-vanilla/net/x25/af_x25.c linux-2.6.14.5/net/x25/af_x25.c --- linux-2.6.14.5-vanilla/net/x25/af_x25.c 2005-12-27 11:26:33.000000000 +1100 +++ linux-2.6.14.5/net/x25/af_x25.c 2006-01-03 10:25:39.000000000 +1100 @@ -540,12 +540,7 @@ static struct sock *x25_make_new(struct sk->sk_state = TCP_ESTABLISHED; sk->sk_sleep = osk->sk_sleep; sk->sk_backlog_rcv = osk->sk_backlog_rcv; - - if (sock_flag(osk, SOCK_ZAPPED)) - sock_set_flag(sk, SOCK_ZAPPED); - - if (sock_flag(osk, SOCK_DBG)) - sock_set_flag(sk, SOCK_DBG); + sock_copy_flags(sk, osk); ox25 = x25_sk(osk); x25->t21 = ox25->t21; - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html