ports/net/hostapd29/files/patch-src_drivers_driver__bsd.c
Cy Schubert 7150a0c9b1 */*: Bring back wpa_supplicant29 and hostapd29 as new ports
The current wpa_supplicant and hostapd have an issue with AR9285.
For the time being bring back wpa_supplicant 2.9 as
security/wpa_supplicant29 and hostpd 2.9 as net/hostapd29 for those
cases that have an issue with wpa_supplicant/hostpad2.10 (in base and
in ports)

PR:		264238
MFH:		2022Q2
2022-06-19 09:20:13 -07:00

60 lines
1.7 KiB
C

--- 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,