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.50.4.5 retrieving revision 1.51 diff -u -p -r1.50.4.5 -r1.51 --- src/sys/kern/uipc_socket.c 2002/09/18 16:04:53 1.50.4.5 +++ src/sys/kern/uipc_socket.c 2000/12/10 23:16:28 1.51 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.50.4.5 2002/09/18 16:04:53 itojun Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.51 2000/12/10 23:16:28 fvdl Exp $ */ /* * Copyright (c) 1982, 1986, 1988, 1990, 1993 @@ -262,7 +262,7 @@ soaccept(so, nam) struct mbuf *nam; { int s = splsoftnet(); - int error = 0; + int error; if ((so->so_state & SS_NOFDREF) == 0) panic("soaccept: !NOFDREF"); @@ -271,8 +271,7 @@ soaccept(so, nam) error = (*so->so_proto->pr_usrreq)(so, PRU_ACCEPT, (struct mbuf *)0, nam, (struct mbuf *)0, (struct proc *)0); else - error = ECONNABORTED; - + error = 0; splx(s); return (error); } @@ -569,7 +568,6 @@ soreceive(so, paddr, uio, mp0, controlp, struct mbuf *nextrecord; int moff, type = 0; int orig_resid = uio->uio_resid; - int mbuf_removed = 0; mp = mp0; if (paddr) @@ -684,7 +682,6 @@ dontblock: m = m->m_next; } else { sbfree(&so->so_rcv, m); - mbuf_removed = 1; if (paddr) { *paddr = m; so->so_rcv.sb_mb = m->m_next; @@ -703,7 +700,6 @@ dontblock: m = m->m_next; } else { sbfree(&so->so_rcv, m); - mbuf_removed = 1; if (controlp) { if (pr->pr_domain->dom_externalize && mtod(m, struct cmsghdr *)->cmsg_type == @@ -760,24 +756,6 @@ dontblock: splx(s); error = uiomove(mtod(m, caddr_t) + moff, (int)len, uio); s = splsoftnet(); - if (error) { - /* - * If any part of the record has been removed - * (such as the MT_SONAME mbuf, which will - * happen when PR_ADDR, and thus also - * PR_ATOMIC, is set), then drop the entire - * record to maintain the atomicity of the - * receive operation. - * - * This avoids a later panic("receive 1a") - * when compiled with DIAGNOSTIC. - */ - if (m && mbuf_removed - && (pr->pr_flags & PR_ATOMIC)) - (void) sbdroprecord(&so->so_rcv); - - goto release; - } } else uio->uio_resid -= len; if (len == m->m_len - moff) {