diff options
author | rwatson <rwatson@FreeBSD.org> | 2007-05-11 10:20:51 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2007-05-11 10:20:51 +0000 |
commit | 47d37a80be0931ad72e67db6ba915221afdfeb4f (patch) | |
tree | 830d52c0a835e86532d14a328bcdb1121e33e37a /sys/netinet6 | |
parent | 46a4c44c3b39d3c635f686c57785c0dd7511f2b6 (diff) | |
download | FreeBSD-src-47d37a80be0931ad72e67db6ba915221afdfeb4f.zip FreeBSD-src-47d37a80be0931ad72e67db6ba915221afdfeb4f.tar.gz |
Reduce network stack oddness: implement .pru_sockaddr and .pru_peeraddr
protocol entry points using functions named proto_getsockaddr and
proto_getpeeraddr rather than proto_setsockaddr and proto_setpeeraddr.
While it's true that sockaddrs are allocated and set, the net effect is
to retrieve (get) the socket address or peer address from a socket, not
set it, so align names to that intent.
Diffstat (limited to 'sys/netinet6')
-rw-r--r-- | sys/netinet6/in6_pcb.c | 30 | ||||
-rw-r--r-- | sys/netinet6/in6_pcb.h | 4 | ||||
-rw-r--r-- | sys/netinet6/raw_ip6.c | 4 |
3 files changed, 14 insertions, 24 deletions
diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c index ecd7ea0..d44e3e4 100644 --- a/sys/netinet6/in6_pcb.c +++ b/sys/netinet6/in6_pcb.c @@ -501,18 +501,8 @@ in6_v4mapsin6_sockaddr(port, addr_p) return (struct sockaddr *)sin6_p; } -/* - * The calling convention of in6_setsockaddr() and in6_setpeeraddr() was - * modified to match the pru_sockaddr() and pru_peeraddr() entry points - * in struct pr_usrreqs, so that protocols can just reference then directly - * without the need for a wrapper function. The socket must have a valid - * (i.e., non-nil) PCB, but it should be impossible to get an invalid one - * except through a kernel programming error, so it is acceptable to panic - * (or in this case trap) if the PCB is invalid. (Actually, we don't trap - * because there actually /is/ a programming error somewhere... XXX) - */ int -in6_setsockaddr(so, nam) +in6_getsockaddr(so, nam) struct socket *so; struct sockaddr **nam; { @@ -521,7 +511,7 @@ in6_setsockaddr(so, nam) in_port_t port; inp = sotoinpcb(so); - KASSERT(inp != NULL, ("in6_setsockaddr: inp == NULL")); + KASSERT(inp != NULL, ("in6_getsockaddr: inp == NULL")); INP_LOCK(inp); port = inp->inp_lport; @@ -533,7 +523,7 @@ in6_setsockaddr(so, nam) } int -in6_setpeeraddr(so, nam) +in6_getpeeraddr(so, nam) struct socket *so; struct sockaddr **nam; { @@ -542,7 +532,7 @@ in6_setpeeraddr(so, nam) in_port_t port; inp = sotoinpcb(so); - KASSERT(inp != NULL, ("in6_setpeeraddr: inp == NULL")); + KASSERT(inp != NULL, ("in6_getpeeraddr: inp == NULL")); INP_LOCK(inp); port = inp->inp_fport; @@ -563,12 +553,12 @@ in6_mapped_sockaddr(struct socket *so, struct sockaddr **nam) KASSERT(inp != NULL, ("in6_mapped_sockaddr: inp == NULL")); if ((inp->inp_vflag & (INP_IPV4 | INP_IPV6)) == INP_IPV4) { - error = in_setsockaddr(so, nam); + error = in_getsockaddr(so, nam); if (error == 0) in6_sin_2_v4mapsin6_in_sock(nam); } else { - /* scope issues will be handled in in6_setsockaddr(). */ - error = in6_setsockaddr(so, nam); + /* scope issues will be handled in in6_getsockaddr(). */ + error = in6_getsockaddr(so, nam); } return error; @@ -584,12 +574,12 @@ in6_mapped_peeraddr(struct socket *so, struct sockaddr **nam) KASSERT(inp != NULL, ("in6_mapped_peeraddr: inp == NULL")); if ((inp->inp_vflag & (INP_IPV4 | INP_IPV6)) == INP_IPV4) { - error = in_setpeeraddr(so, nam); + error = in_getpeeraddr(so, nam); if (error == 0) in6_sin_2_v4mapsin6_in_sock(nam); } else - /* scope issues will be handled in in6_setpeeraddr(). */ - error = in6_setpeeraddr(so, nam); + /* scope issues will be handled in in6_getpeeraddr(). */ + error = in6_getpeeraddr(so, nam); return error; } diff --git a/sys/netinet6/in6_pcb.h b/sys/netinet6/in6_pcb.h index a1f4190..832c755 100644 --- a/sys/netinet6/in6_pcb.h +++ b/sys/netinet6/in6_pcb.h @@ -95,8 +95,8 @@ struct sockaddr * in6_sockaddr __P((in_port_t port, struct in6_addr *addr_p)); struct sockaddr * in6_v4mapsin6_sockaddr __P((in_port_t port, struct in_addr *addr_p)); -int in6_setpeeraddr __P((struct socket *so, struct sockaddr **nam)); -int in6_setsockaddr __P((struct socket *so, struct sockaddr **nam)); +int in6_getpeeraddr __P((struct socket *so, struct sockaddr **nam)); +int in6_getsockaddr __P((struct socket *so, struct sockaddr **nam)); int in6_mapped_sockaddr __P((struct socket *so, struct sockaddr **nam)); int in6_mapped_peeraddr __P((struct socket *so, struct sockaddr **nam)); int in6_selecthlim __P((struct in6pcb *, struct ifnet *)); diff --git a/sys/netinet6/raw_ip6.c b/sys/netinet6/raw_ip6.c index 739d854..f06d1eb 100644 --- a/sys/netinet6/raw_ip6.c +++ b/sys/netinet6/raw_ip6.c @@ -819,9 +819,9 @@ struct pr_usrreqs rip6_usrreqs = { .pru_control = in6_control, .pru_detach = rip6_detach, .pru_disconnect = rip6_disconnect, - .pru_peeraddr = in6_setpeeraddr, + .pru_peeraddr = in6_getpeeraddr, .pru_send = rip6_send, .pru_shutdown = rip6_shutdown, - .pru_sockaddr = in6_setsockaddr, + .pru_sockaddr = in6_getsockaddr, .pru_close = rip6_close, }; |