Subject: Re: Missing EOF for socketpair() with SOCK_DGRAM
To: Christian Biere <christianbiere@gmx.de>
From: Martin Husemann <martin@duskware.de>
List: tech-net
Date: 11/01/2006 09:55:15
On Wed, Nov 01, 2006 at 06:22:54AM +0100, Christian Biere wrote:
> --- uipc_usrreq.c	3 Sep 2006 21:15:29 -0000	1.93
> +++ uipc_usrreq.c	1 Nov 2006 04:14:26 -0000
> @@ -799,7 +800,7 @@ unp_disconnect(struct unpcb *unp)
>  			unp2->unp_nextref = unp->unp_nextref;
>  		}
>  		unp->unp_nextref = 0;
> -		unp->unp_socket->so_state &= ~SS_ISCONNECTED;
> +		soisdisconnected(unp->unp_socket);
>  		break;
>  
>  	case SOCK_STREAM:

This change looks correct to me.

Btw: there is a similar issue in netinet/udp_usrreq.c - conveniently marked
/* XXX */ already. Same for netinet6/raw_ip6.c and upd6_usrreq.c.

Martin