diff options
author | wollman <wollman@FreeBSD.org> | 1997-08-16 19:16:27 +0000 |
---|---|---|
committer | wollman <wollman@FreeBSD.org> | 1997-08-16 19:16:27 +0000 |
commit | 4542c1cf5d7077caf33d6d9468f5e647cd9d19e5 (patch) | |
tree | 69fd093ef1e8c080592999507b664fe6315c0e10 /sys/netinet/raw_ip.c | |
parent | f4edc7fc6748272644fb845fc8636a5c261247d6 (diff) | |
download | FreeBSD-src-4542c1cf5d7077caf33d6d9468f5e647cd9d19e5.zip FreeBSD-src-4542c1cf5d7077caf33d6d9468f5e647cd9d19e5.tar.gz |
Fix all areas of the system (or at least all those in LINT) to avoid storing
socket addresses in mbufs. (Socket buffers are the one exception.) A number
of kernel APIs needed to get fixed in order to make this happen. Also,
fix three protocol families which kept PCBs in mbufs to not malloc them
instead. Delete some old compatibility cruft while we're at it, and add
some new routines in the in_cksum family.
Diffstat (limited to 'sys/netinet/raw_ip.c')
-rw-r--r-- | sys/netinet/raw_ip.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c index b5b3c7d..0afd764 100644 --- a/sys/netinet/raw_ip.c +++ b/sys/netinet/raw_ip.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)raw_ip.c 8.7 (Berkeley) 5/15/95 - * $Id: raw_ip.c,v 1.46 1997/05/22 20:52:56 fenner Exp $ + * $Id: raw_ip.c,v 1.47 1997/08/02 14:32:54 bde Exp $ */ #include <sys/param.h> @@ -440,12 +440,12 @@ rip_disconnect(struct socket *so) } static int -rip_bind(struct socket *so, struct mbuf *nam, struct proc *p) +rip_bind(struct socket *so, struct sockaddr *nam, struct proc *p) { struct inpcb *inp = sotoinpcb(so); - struct sockaddr_in *addr = mtod(nam, struct sockaddr_in *); + struct sockaddr_in *addr = (struct sockaddr_in *)nam; - if (nam->m_len != sizeof(*addr)) + if (nam->sa_len != sizeof(*addr)) return EINVAL; if (TAILQ_EMPTY(&ifnet) || ((addr->sin_family != AF_INET) && @@ -458,12 +458,12 @@ rip_bind(struct socket *so, struct mbuf *nam, struct proc *p) } static int -rip_connect(struct socket *so, struct mbuf *nam, struct proc *p) +rip_connect(struct socket *so, struct sockaddr *nam, struct proc *p) { struct inpcb *inp = sotoinpcb(so); - struct sockaddr_in *addr = mtod(nam, struct sockaddr_in *); + struct sockaddr_in *addr = (struct sockaddr_in *)nam; - if (nam->m_len != sizeof(*addr)) + if (nam->sa_len != sizeof(*addr)) return EINVAL; if (TAILQ_EMPTY(&ifnet)) return EADDRNOTAVAIL; @@ -483,7 +483,7 @@ rip_shutdown(struct socket *so) } static int -rip_send(struct socket *so, int flags, struct mbuf *m, struct mbuf *nam, +rip_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *nam, struct mbuf *control, struct proc *p) { struct inpcb *inp = sotoinpcb(so); @@ -500,7 +500,7 @@ rip_send(struct socket *so, int flags, struct mbuf *m, struct mbuf *nam, m_freem(m); return ENOTCONN; } - dst = mtod(nam, struct sockaddr_in *)->sin_addr.s_addr; + dst = ((struct sockaddr_in *)nam)->sin_addr.s_addr; } return rip_output(m, so, dst); } |