Use IN6_IS_ADDR_MC_NODELOCAL() instead of IN6_IS_ADDR_MC_INTFACELOCAL().
authorclaudio <claudio@openbsd.org>
Fri, 24 Jun 2022 10:36:53 +0000 (10:36 +0000)
committerclaudio <claudio@openbsd.org>
Fri, 24 Jun 2022 10:36:53 +0000 (10:36 +0000)
It seems that IN6_IS_ADDR_MC_NODELOCAL() is the official name of this
nightmare and therefor more portable.
OK tb@

usr.sbin/bgpd/kroute.c
usr.sbin/bgpd/util.c

index 6579a50..db2e8ba 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: kroute.c,v 1.268 2022/06/23 13:09:03 claudio Exp $ */
+/*     $OpenBSD: kroute.c,v 1.269 2022/06/24 10:36:53 claudio Exp $ */
 
 /*
  * Copyright (c) 2022 Claudio Jeker <claudio@openbsd.org>
@@ -1626,13 +1626,13 @@ kr6_tofull(struct kroute6 *kr6)
        /* only set scope_id for link-local addresses because IPv6 */
        if (IN6_IS_ADDR_LINKLOCAL(&kr6->prefix) ||
            IN6_IS_ADDR_MC_LINKLOCAL(&kr6->prefix) ||
-           IN6_IS_ADDR_MC_INTFACELOCAL(&kr6->prefix))
+           IN6_IS_ADDR_MC_NODELOCAL(&kr6->prefix))
                kf.prefix.scope_id = kr6->ifindex;
        kf.nexthop.aid = AID_INET6;
        memcpy(&kf.nexthop.v6, &kr6->nexthop, sizeof(struct in6_addr));
        if (IN6_IS_ADDR_LINKLOCAL(&kr6->nexthop) ||
            IN6_IS_ADDR_MC_LINKLOCAL(&kr6->nexthop) ||
-           IN6_IS_ADDR_MC_INTFACELOCAL(&kr6->nexthop))
+           IN6_IS_ADDR_MC_NODELOCAL(&kr6->nexthop))
                kf.nexthop.scope_id = kr6->ifindex;
        strlcpy(kf.label, rtlabel_id2name(kr6->labelid), sizeof(kf.label));
        kf.flags = kr6->flags;
index 1c0c87b..4cd3323 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: util.c,v 1.67 2022/06/22 14:49:02 tb Exp $ */
+/*     $OpenBSD: util.c,v 1.68 2022/06/24 10:36:53 claudio Exp $ */
 
 /*
  * Copyright (c) 2006 Claudio Jeker <claudio@openbsd.org>
@@ -68,7 +68,7 @@ log_in6addr(const struct in6_addr *addr)
        /* XXX thanks, KAME, for this ugliness... adopted from route/show.c */
        if ((IN6_IS_ADDR_LINKLOCAL(&sa_in6.sin6_addr) ||
            IN6_IS_ADDR_MC_LINKLOCAL(&sa_in6.sin6_addr) ||
-           IN6_IS_ADDR_MC_INTFACELOCAL(&sa_in6.sin6_addr)) &&
+           IN6_IS_ADDR_MC_NODELOCAL(&sa_in6.sin6_addr)) &&
            sa_in6.sin6_scope_id == 0) {
                uint16_t tmp16;
                memcpy(&tmp16, &sa_in6.sin6_addr.s6_addr[2], sizeof(tmp16));
@@ -922,7 +922,7 @@ sa2addr(struct sockaddr *sa, struct bgpd_addr *addr, uint16_t *port)
                 */
                if ((IN6_IS_ADDR_LINKLOCAL(&sa_in6->sin6_addr) ||
                    IN6_IS_ADDR_MC_LINKLOCAL(&sa_in6->sin6_addr) ||
-                   IN6_IS_ADDR_MC_INTFACELOCAL(&sa_in6->sin6_addr)) &&
+                   IN6_IS_ADDR_MC_NODELOCAL(&sa_in6->sin6_addr)) &&
                    sa_in6->sin6_scope_id == 0) {
                        uint16_t tmp16;
                        memcpy(&tmp16, &sa_in6->sin6_addr.s6_addr[2],