]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
FreeBSD lacks SIOCGIFDATA it seems.
authorRoy Marples <roy@marples.name>
Wed, 23 Sep 2020 08:26:16 +0000 (09:26 +0100)
committerRoy Marples <roy@marples.name>
Wed, 23 Sep 2020 08:26:16 +0000 (09:26 +0100)
src/if-bsd.c

index c7be22fe1689c986affb994bad517743e64c959d..7f8cc6f669ef93b55ee5fe06582355123df8b7bb 100644 (file)
@@ -382,12 +382,16 @@ int
 if_carrier(struct interface *ifp)
 {
        int carrier = if_carrier0(ifp);
+#ifdef SIOCGIFDATA
        struct ifdatareq ifdr = { .ifdr_data.ifi_link_state = 0 };
        struct if_data *ifdata;
 
        if (carrier != LINK_UNKNOWN)
                return carrier;
 
+       struct ifdatareq ifdr = { .ifdr_data.ifi_link_state = 0 };
+       struct if_data *ifdata;
+
        strlcpy(ifdr.ifdr_name, ifp->name, sizeof(ifdr.ifdr_name));
        if (ioctl(ifp->ctx->pf_inet_fd, SIOCGIFDATA, &ifdr) == -1)
                return LINK_UNKNOWN;
@@ -400,6 +404,9 @@ if_carrier(struct interface *ifp)
                return LINK_UP;
        }
        return LINK_UNKNOWN;
+#else
+       return carrier;
+#endif
 }
 
 int