diff options
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/raw_usrreq.c | 22 | ||||
-rw-r--r-- | sys/net/rtsock.c | 12 |
2 files changed, 15 insertions, 19 deletions
diff --git a/sys/net/raw_usrreq.c b/sys/net/raw_usrreq.c index ec847ed..08d02d5 100644 --- a/sys/net/raw_usrreq.c +++ b/sys/net/raw_usrreq.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)raw_usrreq.c 8.1 (Berkeley) 6/10/93 - * $Id: raw_usrreq.c,v 1.12 1997/04/27 20:00:59 wollman Exp $ + * $Id: raw_usrreq.c,v 1.13 1997/08/02 14:32:40 bde Exp $ */ #include <sys/param.h> @@ -164,13 +164,13 @@ raw_uattach(struct socket *so, int proto, struct proc *p) } static int -raw_ubind(struct socket *so, struct mbuf *nam, struct proc *p) +raw_ubind(struct socket *so, struct sockaddr *nam, struct proc *p) { return EINVAL; } static int -raw_uconnect(struct socket *so, struct mbuf *nam, struct proc *p) +raw_uconnect(struct socket *so, struct sockaddr *nam, struct proc *p) { return EINVAL; } @@ -208,7 +208,7 @@ raw_udisconnect(struct socket *so) /* pru_listen is EOPNOTSUPP */ static int -raw_upeeraddr(struct socket *so, struct mbuf *nam) +raw_upeeraddr(struct socket *so, struct sockaddr **nam) { struct rawcb *rp = sotorawcb(so); unsigned len; @@ -218,9 +218,7 @@ raw_upeeraddr(struct socket *so, struct mbuf *nam) if (rp->rcb_faddr == 0) { return ENOTCONN; } - len = rp->rcb_faddr->sa_len; - bcopy((caddr_t)rp->rcb_faddr, mtod(nam, caddr_t), len); - nam->m_len = len; + *nam = dup_sockaddr(rp->rcb_faddr, 1); return 0; } @@ -229,7 +227,7 @@ raw_upeeraddr(struct socket *so, struct mbuf *nam) static int raw_usend(struct socket *so, int flags, struct mbuf *m, - struct mbuf *nam, struct mbuf *control, struct proc *p) + struct sockaddr *nam, struct mbuf *control, struct proc *p) { int error; struct rawcb *rp = sotorawcb(so); @@ -253,7 +251,7 @@ raw_usend(struct socket *so, int flags, struct mbuf *m, error = EISCONN; goto release; } - rp->rcb_faddr = mtod(nam, struct sockaddr *); + rp->rcb_faddr = nam; } else if (rp->rcb_faddr == 0) { error = ENOTCONN; goto release; @@ -282,7 +280,7 @@ raw_ushutdown(struct socket *so) } static int -raw_usockaddr(struct socket *so, struct mbuf *nam) +raw_usockaddr(struct socket *so, struct sockaddr **nam) { struct rawcb *rp = sotorawcb(so); unsigned len; @@ -291,9 +289,7 @@ raw_usockaddr(struct socket *so, struct mbuf *nam) return EINVAL; if (rp->rcb_laddr == 0) return EINVAL; - len = rp->rcb_laddr->sa_len; - bcopy((caddr_t)rp->rcb_laddr, mtod(nam, caddr_t), len); - nam->m_len = len; + *nam = dup_sockaddr(rp->rcb_laddr, 1); return 0; } diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index a73baa0..48c7996 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)rtsock.c 8.5 (Berkeley) 11/2/94 - * $Id: rtsock.c,v 1.30 1997/07/17 09:21:34 msmith Exp $ + * $Id: rtsock.c,v 1.31 1997/07/18 11:44:24 julian Exp $ */ @@ -150,7 +150,7 @@ rts_attach(struct socket *so, int proto, struct proc *p) } static int -rts_bind(struct socket *so, struct mbuf *nam, struct proc *p) +rts_bind(struct socket *so, struct sockaddr *nam, struct proc *p) { int s, error; s = splnet(); @@ -160,7 +160,7 @@ rts_bind(struct socket *so, struct mbuf *nam, struct proc *p) } static int -rts_connect(struct socket *so, struct mbuf *nam, struct proc *p) +rts_connect(struct socket *so, struct sockaddr *nam, struct proc *p) { int s, error; s = splnet(); @@ -214,7 +214,7 @@ rts_disconnect(struct socket *so) /* pru_listen is EOPNOTSUPP */ static int -rts_peeraddr(struct socket *so, struct mbuf *nam) +rts_peeraddr(struct socket *so, struct sockaddr **nam) { int s, error; s = splnet(); @@ -227,7 +227,7 @@ rts_peeraddr(struct socket *so, struct mbuf *nam) /* pru_rcvoob is EOPNOTSUPP */ static int -rts_send(struct socket *so, int flags, struct mbuf *m, struct mbuf *nam, +rts_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *nam, struct mbuf *control, struct proc *p) { int s, error; @@ -250,7 +250,7 @@ rts_shutdown(struct socket *so) } static int -rts_sockaddr(struct socket *so, struct mbuf *nam) +rts_sockaddr(struct socket *so, struct sockaddr **nam) { int s, error; s = splnet(); |