diff options
author | Robert Watson <rwatson@FreeBSD.org> | 2007-05-11 10:20:51 +0000 |
---|---|---|
committer | Robert Watson <rwatson@FreeBSD.org> | 2007-05-11 10:20:51 +0000 |
commit | 54d642bbe5699667d74f2117e6c0f58fcfa4384b (patch) | |
tree | 830d52c0a835e86532d14a328bcdb1121e33e37a /sys/netinet | |
parent | 169db7b25d117b57c38375a01e5141dcede84177 (diff) | |
download | src-54d642bbe5699667d74f2117e6c0f58fcfa4384b.tar.gz src-54d642bbe5699667d74f2117e6c0f58fcfa4384b.zip |
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.
Notes
Notes:
svn path=/head/; revision=169462
Diffstat (limited to 'sys/netinet')
-rw-r--r-- | sys/netinet/in_pcb.c | 22 | ||||
-rw-r--r-- | sys/netinet/in_pcb.h | 4 | ||||
-rw-r--r-- | sys/netinet/ip_divert.c | 4 | ||||
-rw-r--r-- | sys/netinet/raw_ip.c | 4 | ||||
-rw-r--r-- | sys/netinet/tcp_usrreq.c | 6 | ||||
-rw-r--r-- | sys/netinet/udp_usrreq.c | 4 |
6 files changed, 18 insertions, 26 deletions
diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c index 04bd2cf92a7b..d7d829052a36 100644 --- a/sys/netinet/in_pcb.c +++ b/sys/netinet/in_pcb.c @@ -772,6 +772,9 @@ in_pcbdrop(struct inpcb *inp) } } +/* + * Common routines to return the socket addresses associated with inpcbs. + */ struct sockaddr * in_sockaddr(in_port_t port, struct in_addr *addr_p) { @@ -787,23 +790,15 @@ in_sockaddr(in_port_t port, struct in_addr *addr_p) return (struct sockaddr *)sin; } -/* - * The wrapper function will pass down the pcbinfo for this function to lock. - * 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 -in_setsockaddr(struct socket *so, struct sockaddr **nam) +in_getsockaddr(struct socket *so, struct sockaddr **nam) { struct inpcb *inp; struct in_addr addr; in_port_t port; inp = sotoinpcb(so); - KASSERT(inp != NULL, ("in_setsockaddr: inp == NULL")); + KASSERT(inp != NULL, ("in_getsockaddr: inp == NULL")); INP_LOCK(inp); port = inp->inp_lport; @@ -814,18 +809,15 @@ in_setsockaddr(struct socket *so, struct sockaddr **nam) return 0; } -/* - * The wrapper function will pass down the pcbinfo for this function to lock. - */ int -in_setpeeraddr(struct socket *so, struct sockaddr **nam) +in_getpeeraddr(struct socket *so, struct sockaddr **nam) { struct inpcb *inp; struct in_addr addr; in_port_t port; inp = sotoinpcb(so); - KASSERT(inp != NULL, ("in_setpeeraddr: inp == NULL")); + KASSERT(inp != NULL, ("in_getpeeraddr: inp == NULL")); INP_LOCK(inp); port = inp->inp_fport; diff --git a/sys/netinet/in_pcb.h b/sys/netinet/in_pcb.h index 70a5aa1547e3..1467b6a6dd04 100644 --- a/sys/netinet/in_pcb.h +++ b/sys/netinet/in_pcb.h @@ -391,8 +391,8 @@ void in_pcbnotifyall(struct inpcbinfo *pcbinfo, struct in_addr, int, struct inpcb *(*)(struct inpcb *, int)); void in_pcbrehash(struct inpcb *); void in_pcbsetsolabel(struct socket *so); -int in_setpeeraddr(struct socket *so, struct sockaddr **nam); -int in_setsockaddr(struct socket *so, struct sockaddr **nam); +int in_getpeeraddr(struct socket *so, struct sockaddr **nam); +int in_getsockaddr(struct socket *so, struct sockaddr **nam); struct sockaddr * in_sockaddr(in_port_t port, struct in_addr *addr); void in_pcbsosetlabel(struct socket *so); diff --git a/sys/netinet/ip_divert.c b/sys/netinet/ip_divert.c index 2d2a314f575f..a5f904b4ec7e 100644 --- a/sys/netinet/ip_divert.c +++ b/sys/netinet/ip_divert.c @@ -635,10 +635,10 @@ struct pr_usrreqs div_usrreqs = { .pru_bind = div_bind, .pru_control = in_control, .pru_detach = div_detach, - .pru_peeraddr = in_setpeeraddr, + .pru_peeraddr = in_getpeeraddr, .pru_send = div_send, .pru_shutdown = div_shutdown, - .pru_sockaddr = in_setsockaddr, + .pru_sockaddr = in_getsockaddr, .pru_sosetlabel = in_pcbsosetlabel }; diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c index 0fecafae41ac..3eef187c4fbe 100644 --- a/sys/netinet/raw_ip.c +++ b/sys/netinet/raw_ip.c @@ -920,10 +920,10 @@ struct pr_usrreqs rip_usrreqs = { .pru_control = in_control, .pru_detach = rip_detach, .pru_disconnect = rip_disconnect, - .pru_peeraddr = in_setpeeraddr, + .pru_peeraddr = in_getpeeraddr, .pru_send = rip_send, .pru_shutdown = rip_shutdown, - .pru_sockaddr = in_setsockaddr, + .pru_sockaddr = in_getsockaddr, .pru_sosetlabel = in_pcbsosetlabel, .pru_close = rip_close, }; diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c index f28b0ba40d00..8845efcef691 100644 --- a/sys/netinet/tcp_usrreq.c +++ b/sys/netinet/tcp_usrreq.c @@ -618,7 +618,7 @@ tcp_usr_accept(struct socket *so, struct sockaddr **nam) TCPDEBUG1(); /* - * We inline in_setpeeraddr and COMMON_END here, so that we can + * We inline in_getpeeraddr and COMMON_END here, so that we can * copy the data of interest and defer the malloc until after we * release the lock. */ @@ -1036,12 +1036,12 @@ struct pr_usrreqs tcp_usrreqs = { .pru_detach = tcp_usr_detach, .pru_disconnect = tcp_usr_disconnect, .pru_listen = tcp_usr_listen, - .pru_peeraddr = in_setpeeraddr, + .pru_peeraddr = in_getpeeraddr, .pru_rcvd = tcp_usr_rcvd, .pru_rcvoob = tcp_usr_rcvoob, .pru_send = tcp_usr_send, .pru_shutdown = tcp_usr_shutdown, - .pru_sockaddr = in_setsockaddr, + .pru_sockaddr = in_getsockaddr, .pru_sosetlabel = in_pcbsosetlabel, .pru_close = tcp_usr_close, }; diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c index 4e853ca5ae9c..cf2661c74c71 100644 --- a/sys/netinet/udp_usrreq.c +++ b/sys/netinet/udp_usrreq.c @@ -1143,11 +1143,11 @@ struct pr_usrreqs udp_usrreqs = { .pru_control = in_control, .pru_detach = udp_detach, .pru_disconnect = udp_disconnect, - .pru_peeraddr = in_setpeeraddr, + .pru_peeraddr = in_getpeeraddr, .pru_send = udp_send, .pru_sosend = sosend_dgram, .pru_shutdown = udp_shutdown, - .pru_sockaddr = in_setsockaddr, + .pru_sockaddr = in_getsockaddr, .pru_sosetlabel = in_pcbsosetlabel, .pru_close = udp_close, }; |