git: 2486a7c0c733 - main - sctp: cleanup
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 14 Apr 2022 19:52:35 UTC
The branch main has been updated by tuexen:
URL: https://cgit.FreeBSD.org/src/commit/?id=2486a7c0c733fb67636c2004aa3300f417eb5cfe
commit 2486a7c0c733fb67636c2004aa3300f417eb5cfe
Author: Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2022-04-14 19:50:10 +0000
Commit: Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2022-04-14 19:52:25 +0000
sctp: cleanup
MFC after: 3 days
---
sys/netinet/sctp_sysctl.c | 67 +++++++++++++++++++++++++++++------------------
1 file changed, 42 insertions(+), 25 deletions(-)
diff --git a/sys/netinet/sctp_sysctl.c b/sys/netinet/sctp_sysctl.c
index 34f727363b7b..e7e53e52b226 100644
--- a/sys/netinet/sctp_sysctl.c
+++ b/sys/netinet/sctp_sysctl.c
@@ -203,7 +203,7 @@ sctp_sysctl_copy_out_local_addresses(struct sctp_inpcb *inp, struct sctp_tcb *st
int error;
/* Turn on all the appropriate scope */
- if (stcb) {
+ if (stcb != NULL) {
/* use association specific values */
loopback_scope = stcb->asoc.scope.loopback_scope;
#ifdef INET
@@ -220,41 +220,53 @@ sctp_sysctl_copy_out_local_addresses(struct sctp_inpcb *inp, struct sctp_tcb *st
loopback_scope = 1;
#ifdef INET
ipv4_local_scope = 1;
- if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6 &&
- SCTP_IPV6_V6ONLY(inp))
- ipv4_addr_legal = 0;
- else
- ipv4_addr_legal = 1;
#endif
#ifdef INET6
local_scope = 1;
site_scope = 1;
- if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6)
+#endif
+ if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) {
+#ifdef INET6
ipv6_addr_legal = 1;
- else
+#endif
+#ifdef INET
+ if (SCTP_IPV6_V6ONLY(inp)) {
+ ipv4_addr_legal = 0;
+ } else {
+ ipv4_addr_legal = 1;
+ }
+#endif
+ } else {
+#ifdef INET6
ipv6_addr_legal = 0;
#endif
+#ifdef INET
+ ipv4_addr_legal = 1;
+#endif
+ }
}
- /* neither Mac OS X nor FreeBSD support multiple routing functions */
+ /* Neither Mac OS X nor FreeBSD support multiple routing functions. */
if ((vrf = sctp_find_vrf(inp->def_vrf_id)) == NULL) {
SCTP_INP_RUNLOCK(inp);
SCTP_INP_INFO_RUNLOCK();
- return (-1);
+ return (ENOENT);
}
if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUNDALL) {
LIST_FOREACH(sctp_ifn, &vrf->ifnlist, next_ifn) {
- if ((loopback_scope == 0) && SCTP_IFN_IS_IFT_LOOP(sctp_ifn))
- /* Skip loopback if loopback_scope not set */
+ if ((loopback_scope == 0) && SCTP_IFN_IS_IFT_LOOP(sctp_ifn)) {
+ /* Skip loopback if loopback_scope not set. */
continue;
+ }
LIST_FOREACH(sctp_ifa, &sctp_ifn->ifalist, next_ifa) {
- if (stcb) {
+ if (stcb != NULL) {
/*
- * ignore if blacklisted at
- * association level
+ * Ignore if blacklisted at
+ * association level.
*/
- if (sctp_is_addr_restricted(stcb, sctp_ifa))
+ if (sctp_is_addr_restricted(stcb, sctp_ifa)) {
continue;
+ }
}
switch (sctp_ifa->address.sa.sa_family) {
#ifdef INET
@@ -263,14 +275,16 @@ sctp_sysctl_copy_out_local_addresses(struct sctp_inpcb *inp, struct sctp_tcb *st
struct sockaddr_in *sin;
sin = &sctp_ifa->address.sin;
- if (sin->sin_addr.s_addr == 0)
+ if (sin->sin_addr.s_addr == 0) {
continue;
+ }
if (prison_check_ip4(inp->ip_inp.inp.inp_cred,
&sin->sin_addr) != 0) {
continue;
}
- if ((ipv4_local_scope == 0) && (IN4_ISPRIVATE_ADDRESS(&sin->sin_addr)))
+ if ((ipv4_local_scope == 0) && (IN4_ISPRIVATE_ADDRESS(&sin->sin_addr))) {
continue;
+ }
} else {
continue;
}
@@ -282,18 +296,21 @@ sctp_sysctl_copy_out_local_addresses(struct sctp_inpcb *inp, struct sctp_tcb *st
struct sockaddr_in6 *sin6;
sin6 = &sctp_ifa->address.sin6;
- if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr))
+ if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
continue;
+ }
if (prison_check_ip6(inp->ip_inp.inp.inp_cred,
&sin6->sin6_addr) != 0) {
continue;
}
if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) {
- if (local_scope == 0)
+ if (local_scope == 0) {
continue;
+ }
}
- if ((site_scope == 0) && (IN6_IS_ADDR_SITELOCAL(&sin6->sin6_addr)))
+ if ((site_scope == 0) && (IN6_IS_ADDR_SITELOCAL(&sin6->sin6_addr))) {
continue;
+ }
} else {
continue;
}
@@ -307,7 +324,7 @@ sctp_sysctl_copy_out_local_addresses(struct sctp_inpcb *inp, struct sctp_tcb *st
SCTP_INP_RUNLOCK(inp);
SCTP_INP_INFO_RUNLOCK();
error = SYSCTL_OUT(req, &xladdr, sizeof(struct xsctp_laddr));
- if (error) {
+ if (error != 0) {
return (error);
} else {
SCTP_INP_INFO_RLOCK();
@@ -318,7 +335,7 @@ sctp_sysctl_copy_out_local_addresses(struct sctp_inpcb *inp, struct sctp_tcb *st
} else {
LIST_FOREACH(laddr, &inp->sctp_addr_list, sctp_nxt_addr) {
/* ignore if blacklisted at association level */
- if (stcb && sctp_is_addr_restricted(stcb, laddr->ifa))
+ if (stcb != NULL && sctp_is_addr_restricted(stcb, laddr->ifa))
continue;
memset((void *)&xladdr, 0, sizeof(struct xsctp_laddr));
memcpy((void *)&xladdr.address, (const void *)&laddr->ifa->address, sizeof(union sctp_sockstore));
@@ -327,7 +344,7 @@ sctp_sysctl_copy_out_local_addresses(struct sctp_inpcb *inp, struct sctp_tcb *st
SCTP_INP_RUNLOCK(inp);
SCTP_INP_INFO_RUNLOCK();
error = SYSCTL_OUT(req, &xladdr, sizeof(struct xsctp_laddr));
- if (error) {
+ if (error != 0) {
return (error);
} else {
SCTP_INP_INFO_RLOCK();
@@ -341,7 +358,7 @@ sctp_sysctl_copy_out_local_addresses(struct sctp_inpcb *inp, struct sctp_tcb *st
SCTP_INP_INFO_RUNLOCK();
error = SYSCTL_OUT(req, &xladdr, sizeof(struct xsctp_laddr));
- if (error) {
+ if (error != 0) {
return (error);
} else {
SCTP_INP_INFO_RLOCK();