diff --git a/src/drivers/driver_ndis.c b/src/drivers/driver_ndis.c index c2d7eeafe..0935bb0d3 100644 --- a/src/drivers/driver_ndis.c +++ b/src/drivers/driver_ndis.c @@ -56,6 +56,10 @@ static int wpa_driver_ndis_adapter_open(struct wpa_driver_ndis_data *drv); static void wpa_driver_ndis_adapter_close(struct wpa_driver_ndis_data *drv); +static const u8 pae_group_addr[ETH_ALEN] = +{ 0x01, 0x80, 0xc2, 0x00, 0x00, 0x03 }; + + /* FIX: to be removed once this can be compiled with the complete NDIS * header files */ #ifndef OID_802_11_BSSID @@ -610,12 +614,7 @@ static int wpa_driver_ndis_get_bssid(void *priv, u8 *bssid) * Report PAE group address as the "BSSID" for wired * connection. */ - bssid[0] = 0x01; - bssid[1] = 0x80; - bssid[2] = 0xc2; - bssid[3] = 0x00; - bssid[4] = 0x00; - bssid[5] = 0x03; + os_memcpy(bssid, pae_group_addr, ETH_ALEN); return 0; } @@ -2704,6 +2703,19 @@ static void wpa_driver_ndis_adapter_close(struct wpa_driver_ndis_data *drv) } +static int ndis_add_multicast(struct wpa_driver_ndis_data *drv) +{ + if (ndis_set_oid(drv, OID_802_3_MULTICAST_LIST, + (const char *) pae_group_addr, ETH_ALEN) < 0) { + wpa_printf(MSG_DEBUG, "NDIS: Failed to add PAE group address " + "to the multicast list"); + return -1; + } + + return 0; +} + + static void * wpa_driver_ndis_init(void *ctx, const char *ifname) { struct wpa_driver_ndis_data *drv; @@ -2805,6 +2817,7 @@ static void * wpa_driver_ndis_init(void *ctx, const char *ifname) drv->wired = 1; drv->capa.flags |= WPA_DRIVER_FLAGS_WIRED; drv->has_capability = 1; + ndis_add_multicast(drv); } } diff --git a/wpa_supplicant/ChangeLog b/wpa_supplicant/ChangeLog index 80f8c288d..b2a86edcf 100644 --- a/wpa_supplicant/ChangeLog +++ b/wpa_supplicant/ChangeLog @@ -14,6 +14,8 @@ ChangeLog for wpa_supplicant with nl80211 * added support for WPS USBA out-of-band mechanism with USB Flash Drives (UFD) (CONFIG_WPS_UFD=y) + * driver_ndis: add PAE group address to the multicast address list to + fix wired IEEE 802.1X authentication 2009-01-06 - v0.6.7 * added support for Wi-Fi Protected Setup (WPS)