summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2007-05-11 10:20:51 +0000
committerrwatson <rwatson@FreeBSD.org>2007-05-11 10:20:51 +0000
commit47d37a80be0931ad72e67db6ba915221afdfeb4f (patch)
tree830d52c0a835e86532d14a328bcdb1121e33e37a /sys/netinet6
parent46a4c44c3b39d3c635f686c57785c0dd7511f2b6 (diff)
downloadFreeBSD-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.c30
-rw-r--r--sys/netinet6/in6_pcb.h4
-rw-r--r--sys/netinet6/raw_ip6.c4
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,
};
OpenPOWER on IntegriCloud