[PATCH] DECnet connect hang bugfix

From: Patrick Caulfield
Date: Sun Oct 24 2004 - 06:16:56 EST


This patch fixes a bug in the DECnet connect that seems to have been in 2.6 for
a while now.

If a connection is rejected by a remote host (eg invalid access control, no
such object etc) the Linux end hangs in connect() because it is only waiting for
the socket to go into RUN state.

This patch sets the ECONNREFUSED error state on the socket when the connection
is rejected to that the connect() exits it's wait loop and returns the error to
the user.



===== dn_nsp_in.c 1.14 vs edited =====
--- 1.14/net/decnet/dn_nsp_in.c 2004-06-28 21:14:20 +01:00
+++ edited/dn_nsp_in.c 2004-10-14 13:44:23 +01:00
@@ -419,6 +419,7 @@
case DN_CI:
case DN_CD:
scp->state = DN_RJ;
+ sk->sk_err = ECONNREFUSED;
break;
case DN_RUN:
sk->sk_shutdown |= SHUTDOWN_MASK;

--

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