Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/kern/uipc_socket.c,v retrieving revision 1.44 retrieving revision 1.44.2.1 diff -u -p -r1.44 -r1.44.2.1 --- src/sys/kern/uipc_socket.c 1999/03/23 10:45:37 1.44 +++ src/sys/kern/uipc_socket.c 1999/06/18 17:14:35 1.44.2.1 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.44 1999/03/23 10:45:37 lukem Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.44.2.1 1999/06/18 17:14:35 perry Exp $ */ /* * Copyright (c) 1982, 1986, 1988, 1990, 1993 @@ -404,8 +404,12 @@ restart: s = splsoftnet(); if (so->so_state & SS_CANTSENDMORE) snderr(EPIPE); - if (so->so_error) - snderr(so->so_error); + if (so->so_error) { + error = so->so_error; + so->so_error = 0; + splx(s); + goto release; + } if ((so->so_state & SS_ISCONNECTED) == 0) { if (so->so_proto->pr_flags & PR_CONNREQUIRED) { if ((so->so_state & SS_ISCONFIRMING) == 0 &&