diff options
author | jlemon <jlemon@FreeBSD.org> | 2001-03-09 08:16:40 +0000 |
---|---|---|
committer | jlemon <jlemon@FreeBSD.org> | 2001-03-09 08:16:40 +0000 |
commit | 50bffc6c06aca836443e915bf84b611c97ee5c19 (patch) | |
tree | 62d7942d27fad82cda790598df2a606d5b543fee /sys/kern/uipc_socket.c | |
parent | e8c0cc0af2cba10cc1a43be82ba2a811596cbf73 (diff) | |
download | FreeBSD-src-50bffc6c06aca836443e915bf84b611c97ee5c19.zip FreeBSD-src-50bffc6c06aca836443e915bf84b611c97ee5c19.tar.gz |
Push the test for a disconnected socket when accept()ing down to the
protocol layer. Not all protocols behave identically. This fixes the
brokenness observed with unix-domain sockets (and postfix)
Diffstat (limited to 'sys/kern/uipc_socket.c')
-rw-r--r-- | sys/kern/uipc_socket.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index f4237a0..ef4ac59 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -360,10 +360,7 @@ soaccept(so, nam) if ((so->so_state & SS_NOFDREF) == 0) panic("soaccept: !NOFDREF"); so->so_state &= ~SS_NOFDREF; - if ((so->so_state & SS_ISDISCONNECTED) == 0) - error = (*so->so_proto->pr_usrreqs->pru_accept)(so, nam); - else - error = ECONNABORTED; + error = (*so->so_proto->pr_usrreqs->pru_accept)(so, nam); splx(s); return (error); } |