From: Roy Marples Date: Wed, 26 Apr 2023 13:01:07 +0000 (+0100) Subject: Revert "OpenBSD: When attaching INET6 set IFF_UP" X-Git-Tag: v10.0.2~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ca51f8dfeb81a72cd84f2e8e88d37c38007a198a;p=thirdparty%2Fdhcpcd.git Revert "OpenBSD: When attaching INET6 set IFF_UP" This reverts commit 985aa759da7b8b1c47d5e90c5a6e835ec17855e8. --- diff --git a/src/if-bsd.c b/src/if-bsd.c index f6f0902d..eb3a4380 100644 --- a/src/if-bsd.c +++ b/src/if-bsd.c @@ -1758,9 +1758,10 @@ ip6_forwarding(__unused const char *ifname) static int if_af_attach(const struct interface *ifp, int af) { - struct if_afreq ifar = { .ifar_af = af }; + struct if_afreq ifar; strlcpy(ifar.ifar_name, ifp->name, sizeof(ifar.ifar_name)); + ifar.ifar_af = af; return if_ioctl6(ifp->ctx, SIOCIFAFATTACH, &ifar, sizeof(ifar)); } #endif @@ -1832,7 +1833,7 @@ if_disable_rtadv(void) } void -if_setup_inet6(struct interface *ifp) +if_setup_inet6(const struct interface *ifp) { #ifdef ND6_NDI_FLAGS struct priv *priv; @@ -1891,14 +1892,6 @@ if_setup_inet6(struct interface *ifp) #ifdef SIOCIFAFATTACH if (if_af_attach(ifp, AF_INET6) == -1) logerr("%s: if_af_attach", ifp->name); -#ifdef __OpenBSD__ - /* Adding any address to any interface *will* force the interface - * UP without sending a notification via route(4). - * Attaching INET6 will add a LL address. - * This truely sucks balls, but is what it is. */ - else - ifp->flags |= IFF_UP; -#endif #endif #ifdef SIOCGIFXFLAGS diff --git a/src/if-linux.c b/src/if-linux.c index ea47f0d6..3ca96705 100644 --- a/src/if-linux.c +++ b/src/if-linux.c @@ -2117,7 +2117,7 @@ static const char *p_conf = "/proc/sys/net/ipv6/conf"; static const char *p_neigh = "/proc/sys/net/ipv6/neigh"; void -if_setup_inet6(struct interface *ifp) +if_setup_inet6(const struct interface *ifp) { struct dhcpcd_ctx *ctx = ifp->ctx; int ra; diff --git a/src/if-sun.c b/src/if-sun.c index 9e152c74..0a60368e 100644 --- a/src/if-sun.c +++ b/src/if-sun.c @@ -1741,7 +1741,7 @@ if_applyra(const struct ra *rap) } void -if_setup_inet6(__unused struct interface *ifp) +if_setup_inet6(__unused const struct interface *ifp) { } diff --git a/src/if.h b/src/if.h index 6ae22d61..df5f921e 100644 --- a/src/if.h +++ b/src/if.h @@ -266,7 +266,7 @@ int if_addrflags(const struct interface *, const struct in_addr *, #ifdef INET6 void if_disable_rtadv(void); -void if_setup_inet6(struct interface *); +void if_setup_inet6(const struct interface *); int ip6_forwarding(const char *ifname); struct ra;