-/* $OpenBSD: if.c,v 1.638 2021/03/18 15:58:58 claudio Exp $ */
+/* $OpenBSD: if.c,v 1.639 2021/03/20 17:08:57 florian Exp $ */
/* $NetBSD: if.c,v 1.35 1996/05/07 05:26:04 thorpej Exp $ */
/*
NET_LOCK();
#ifdef INET6
- if (ISSET(ifr->ifr_flags, IFXF_AUTOCONF6) &&
- !ISSET(ifp->if_xflags, IFXF_AUTOCONF6)) {
+ if ((ISSET(ifr->ifr_flags, IFXF_AUTOCONF6) ||
+ ISSET(ifr->ifr_flags, IFXF_AUTOCONF6TEMP)) &&
+ !ISSET(ifp->if_xflags, IFXF_AUTOCONF6) &&
+ !ISSET(ifp->if_xflags, IFXF_AUTOCONF6TEMP)) {
error = in6_ifattach(ifp);
if (error != 0) {
NET_UNLOCK();
((!ISSET(oif_xflags, IFXF_AUTOCONF4) &&
ISSET(ifp->if_xflags, IFXF_AUTOCONF4)) ||
(!ISSET(oif_xflags, IFXF_AUTOCONF6) &&
- ISSET(ifp->if_xflags, IFXF_AUTOCONF6)))) {
+ ISSET(ifp->if_xflags, IFXF_AUTOCONF6)) ||
+ (!ISSET(oif_xflags, IFXF_AUTOCONF6TEMP) &&
+ ISSET(ifp->if_xflags, IFXF_AUTOCONF6TEMP)))) {
ifr->ifr_flags = ifp->if_flags | IFF_UP;
cmd = SIOCSIFFLAGS;
goto forceup;