From: Matthew Dillon Date: Sat, 5 Jun 2004 05:34:57 +0000 (+0000) Subject: Allow dup_sockaddr() to block, otherwise the code becomes non-deterministic. X-Git-Tag: v2.0.1~11165 X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/bca987e91ce54a729828d4562faf42f64ad47672 Allow dup_sockaddr() to block, otherwise the code becomes non-deterministic. Since we are a thread now this should be fairly safe. --- diff --git a/sys/netproto/ipx/ipx_pcb.c b/sys/netproto/ipx/ipx_pcb.c index ac0a715b98..fbfe04e111 100644 --- a/sys/netproto/ipx/ipx_pcb.c +++ b/sys/netproto/ipx/ipx_pcb.c @@ -34,7 +34,7 @@ * @(#)ipx_pcb.c * * $FreeBSD: src/sys/netipx/ipx_pcb.c,v 1.18.2.1 2001/02/22 09:44:18 bp Exp $ - * $DragonFly: src/sys/netproto/ipx/ipx_pcb.c,v 1.8 2004/04/22 05:09:49 dillon Exp $ + * $DragonFly: src/sys/netproto/ipx/ipx_pcb.c,v 1.9 2004/06/05 05:34:57 dillon Exp $ */ #include @@ -279,7 +279,7 @@ ipx_setsockaddr(struct ipxpcb *ipxp, struct sockaddr **nam) sipx->sipx_len = sizeof(*sipx); sipx->sipx_family = AF_IPX; sipx->sipx_addr = ipxp->ipxp_laddr; - *nam = dup_sockaddr((struct sockaddr *)sipx, 0); + *nam = dup_sockaddr((struct sockaddr *)sipx, 1); } void @@ -294,7 +294,7 @@ ipx_setpeeraddr(ipxp, nam) sipx->sipx_len = sizeof(*sipx); sipx->sipx_family = AF_IPX; sipx->sipx_addr = ipxp->ipxp_faddr; - *nam = dup_sockaddr((struct sockaddr *)sipx, 0); + *nam = dup_sockaddr((struct sockaddr *)sipx, 1); } /* diff --git a/sys/netproto/ipx/ipx_usrreq.c b/sys/netproto/ipx/ipx_usrreq.c index 6ce352dba8..4b52ab4a7f 100644 --- a/sys/netproto/ipx/ipx_usrreq.c +++ b/sys/netproto/ipx/ipx_usrreq.c @@ -34,7 +34,7 @@ * @(#)ipx_usrreq.c * * $FreeBSD: src/sys/netipx/ipx_usrreq.c,v 1.26.2.1 2001/02/22 09:44:18 bp Exp $ - * $DragonFly: src/sys/netproto/ipx/ipx_usrreq.c,v 1.7 2004/06/02 14:43:03 eirikn Exp $ + * $DragonFly: src/sys/netproto/ipx/ipx_usrreq.c,v 1.8 2004/06/05 05:34:57 dillon Exp $ */ #include "opt_ipx.h" @@ -517,7 +517,7 @@ ipx_peeraddr(so, nam) { struct ipxpcb *ipxp = sotoipxpcb(so); - ipx_setpeeraddr(ipxp, nam); /* XXX what if alloc fails? */ + ipx_setpeeraddr(ipxp, nam); return (0); } diff --git a/sys/netproto/ipx/spx_usrreq.c b/sys/netproto/ipx/spx_usrreq.c index 170f7176c9..6517310294 100644 --- a/sys/netproto/ipx/spx_usrreq.c +++ b/sys/netproto/ipx/spx_usrreq.c @@ -34,7 +34,7 @@ * @(#)spx_usrreq.h * * $FreeBSD: src/sys/netipx/spx_usrreq.c,v 1.27.2.1 2001/02/22 09:44:18 bp Exp $ - * $DragonFly: src/sys/netproto/ipx/spx_usrreq.c,v 1.12 2004/06/04 20:27:31 dillon Exp $ + * $DragonFly: src/sys/netproto/ipx/spx_usrreq.c,v 1.13 2004/06/05 05:34:57 dillon Exp $ */ #include @@ -1297,7 +1297,7 @@ spx_accept(struct socket *so, struct sockaddr **nam) sipx->sipx_len = sizeof *sipx; sipx->sipx_family = AF_IPX; sipx->sipx_addr = ipxp->ipxp_faddr; - *nam = dup_sockaddr((struct sockaddr *)sipx, 0); + *nam = dup_sockaddr((struct sockaddr *)sipx, 1); return (0); }