diff options
Diffstat (limited to 'net/hostapd29/files/patch-src_drivers_driver__bsd.c')
-rw-r--r-- | net/hostapd29/files/patch-src_drivers_driver__bsd.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/net/hostapd29/files/patch-src_drivers_driver__bsd.c b/net/hostapd29/files/patch-src_drivers_driver__bsd.c new file mode 100644 index 000000000000..fe3064586710 --- /dev/null +++ b/net/hostapd29/files/patch-src_drivers_driver__bsd.c @@ -0,0 +1,60 @@ +--- src/drivers/driver_bsd.c.orig 2019-08-07 06:25:25.000000000 -0700 ++++ src/drivers/driver_bsd.c 2021-06-13 23:10:12.570253000 -0700 +@@ -649,7 +649,7 @@ + len = 2048; + } + +- return len; ++ return (len == 0) ? 2048 : len; + } + + #ifdef HOSTAPD +@@ -665,7 +665,11 @@ + static int bsd_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr, + u16 reason_code); + ++#ifdef __DragonFly__ ++const char * ++#else + static const char * ++#endif + ether_sprintf(const u8 *addr) + { + static char buf[sizeof(MACSTR)]; +@@ -1080,7 +1084,14 @@ + mode = 0 /* STA */; + break; + case IEEE80211_MODE_IBSS: ++ /* ++ * Ref bin/203086 - FreeBSD's net80211 currently uses ++ * IFM_IEEE80211_ADHOC. ++ */ ++#if 0 + mode = IFM_IEEE80211_IBSS; ++#endif ++ mode = IFM_IEEE80211_ADHOC; + break; + case IEEE80211_MODE_AP: + mode = IFM_IEEE80211_HOSTAP; +@@ -1336,14 +1347,18 @@ + drv = bsd_get_drvindex(global, ifm->ifm_index); + if (drv == NULL) + return; +- if ((ifm->ifm_flags & IFF_UP) == 0 && +- (drv->flags & IFF_UP) != 0) { ++ if (((ifm->ifm_flags & IFF_UP) == 0 || ++ (ifm->ifm_flags & IFF_RUNNING) == 0) && ++ (drv->flags & IFF_UP) != 0 && ++ (drv->flags & IFF_RUNNING) != 0) { + wpa_printf(MSG_DEBUG, "RTM_IFINFO: Interface '%s' DOWN", + drv->ifname); + wpa_supplicant_event(drv->ctx, EVENT_INTERFACE_DISABLED, + NULL); + } else if ((ifm->ifm_flags & IFF_UP) != 0 && +- (drv->flags & IFF_UP) == 0) { ++ (ifm->ifm_flags & IFF_RUNNING) != 0 && ++ ((drv->flags & IFF_UP) == 0 || ++ (drv->flags & IFF_RUNNING) == 0)) { + wpa_printf(MSG_DEBUG, "RTM_IFINFO: Interface '%s' UP", + drv->ifname); + wpa_supplicant_event(drv->ctx, EVENT_INTERFACE_ENABLED, |