Revision 1.552 of etc/rc broke the pause for autoconf interfaces that
use "rdomain" or "metric" by matching only for "mtu" after the flags.
An interface may look like this:

        lo1: flags=8008<LOOPBACK,MULTICAST> rdomain 1 metric 1 mtu 32768
        
Source: sbin/ifconfig/ifconfig.c:status():

        printf("%s: ", ifname);
        printb("flags", flags | (xflags << 16), IFFBITS);
#ifndef SMALL
        if (rdomainid)
                printf(" rdomain %d", rdomainid);
#endif
        if (metric)
                printf(" metric %lu", metric);
        if (mtu)
                printf(" mtu %lu", mtu);
        putchar('\n');

Index: etc/rc
===================================================================
RCS file: /cvs/src/etc/rc,v
retrieving revision 1.552
diff -u -p -r1.552 rc
--- etc/rc      22 Jul 2021 18:29:47 -0000      1.552
+++ etc/rc      28 Jul 2021 20:09:26 -0000
@@ -461,7 +461,7 @@ random_seed
 reorder_libs
 
 # If interface autoconf exists, pause a little for at least one default route
-if ifconfig | grep -q ': flags=.*<.*AUTOCONF.*> mtu'; then
+if ifconfig | grep -q ': flags=.*<.*AUTOCONF.*>'; then
        count=0
        while ((count++ < 20)); do
                route -n show | grep -q ^default && break

Reply via email to