summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet6')
-rw-r--r--sys/netinet6/in6.h8
-rw-r--r--sys/netinet6/in6_src.c18
2 files changed, 10 insertions, 16 deletions
diff --git a/sys/netinet6/in6.h b/sys/netinet6/in6.h
index d0435f6..8777c1c 100644
--- a/sys/netinet6/in6.h
+++ b/sys/netinet6/in6.h
@@ -249,14 +249,6 @@ extern const struct in6_addr in6addr_linklocal_allrouters;
#endif
#endif
-#ifdef _KERNEL /* non standard */
-/* see if two addresses are equal in a scope-conscious manner. */
-#define SA6_ARE_ADDR_EQUAL(a, b) \
- (((a)->sin6_scope_id == 0 || (b)->sin6_scope_id == 0 || \
- ((a)->sin6_scope_id == (b)->sin6_scope_id)) && \
- (bcmp(&(a)->sin6_addr, &(b)->sin6_addr, sizeof(struct in6_addr)) == 0))
-#endif
-
/*
* Unspecified
*/
diff --git a/sys/netinet6/in6_src.c b/sys/netinet6/in6_src.c
index 24534da..61cf9db 100644
--- a/sys/netinet6/in6_src.c
+++ b/sys/netinet6/in6_src.c
@@ -510,7 +510,8 @@ selectroute(dstsock, opts, mopts, ro, retifp, retrt, clone, norouteok)
if ((ron->ro_rt &&
(ron->ro_rt->rt_flags & (RTF_UP | RTF_LLINFO)) !=
(RTF_UP | RTF_LLINFO)) ||
- !SA6_ARE_ADDR_EQUAL(satosin6(&ron->ro_dst), sin6_next)) {
+ !IN6_ARE_ADDR_EQUAL(&satosin6(&ron->ro_dst)->sin6_addr,
+ &sin6_next->sin6_addr)) {
if (ron->ro_rt) {
RTFREE(ron->ro_rt);
ron->ro_rt = NULL;
@@ -967,10 +968,10 @@ add_addrsel_policyent(newpolicy)
/* duplication check */
TAILQ_FOREACH(pol, &addrsel_policytab, ape_entry) {
- if (SA6_ARE_ADDR_EQUAL(&newpolicy->addr,
- &pol->ape_policy.addr) &&
- SA6_ARE_ADDR_EQUAL(&newpolicy->addrmask,
- &pol->ape_policy.addrmask)) {
+ if (IN6_ARE_ADDR_EQUAL(&newpolicy->addr.sin6_addr,
+ &pol->ape_policy.addr.sin6_addr) &&
+ IN6_ARE_ADDR_EQUAL(&newpolicy->addrmask.sin6_addr,
+ &pol->ape_policy.addrmask.sin6_addr)) {
ADDRSEL_UNLOCK();
ADDRSEL_XUNLOCK();
FREE(new, M_IFADDR);
@@ -1001,9 +1002,10 @@ delete_addrsel_policyent(key)
/* search for the entry in the table */
TAILQ_FOREACH(pol, &addrsel_policytab, ape_entry) {
- if (SA6_ARE_ADDR_EQUAL(&key->addr, &pol->ape_policy.addr) &&
- SA6_ARE_ADDR_EQUAL(&key->addrmask,
- &pol->ape_policy.addrmask)) {
+ if (IN6_ARE_ADDR_EQUAL(&key->addr.sin6_addr,
+ &pol->ape_policy.addr.sin6_addr) &&
+ IN6_ARE_ADDR_EQUAL(&key->addrmask.sin6_addr,
+ &pol->ape_policy.addrmask.sin6_addr)) {
break;
}
}
OpenPOWER on IntegriCloud