changeset 5477:71aa26f25800 draft

FreeBSD lacks SIOCGIFDATA it seems.
author Roy Marples <roy@marples.name>
date Wed, 23 Sep 2020 09:26:16 +0100
parents 4f7691185a75
children ad9bae07a29c
files src/if-bsd.c
diffstat 1 files changed, 7 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/if-bsd.c	Tue Sep 22 21:53:13 2020 +0100
+++ b/src/if-bsd.c	Wed Sep 23 09:26:16 2020 +0100
@@ -382,12 +382,16 @@
 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 @@
 		return LINK_UP;
 	}
 	return LINK_UNKNOWN;
+#else
+	return carrier;
+#endif
 }
 
 int