Allow dup_sockaddr() to block, otherwise the code becomes non-deterministic.
authorMatthew Dillon <dillon@dragonflybsd.org>
Sat, 5 Jun 2004 05:34:57 +0000 (05:34 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sat, 5 Jun 2004 05:34:57 +0000 (05:34 +0000)
Since we are a thread now this should be fairly safe.

sys/netproto/ipx/ipx_pcb.c
sys/netproto/ipx/ipx_usrreq.c
sys/netproto/ipx/spx_usrreq.c

index ac0a715..fbfe04e 100644 (file)
@@ -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 <sys/param.h>
@@ -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);
 }
 
 /*
index 6ce352d..4b52ab4 100644 (file)
@@ -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);
 }
 
index 170f717..6517310 100644 (file)
@@ -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 <sys/param.h>
@@ -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);
 }