diff options
| author | Roy Marples <roy@marples.name> | 2020-09-23 09:26:16 +0100 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2020-09-23 09:26:16 +0100 |
| commit | 2e3a64fdfe385894aa12d95cc09c174393350630 (patch) | |
| tree | 69ad3109b09f03c17698aa7b2bb94a977f5b6859 /src/if-bsd.c | |
| parent | 12b2bece4e61c821c5921253796654179dccb640 (diff) | |
| download | dhcpcd-2e3a64fdfe385894aa12d95cc09c174393350630.tar.xz | |
FreeBSD lacks SIOCGIFDATA it seems.
Diffstat (limited to 'src/if-bsd.c')
| -rw-r--r-- | src/if-bsd.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/if-bsd.c b/src/if-bsd.c index c7be22fe..7f8cc6f6 100644 --- a/src/if-bsd.c +++ b/src/if-bsd.c @@ -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 |
