Fix nl80211 driver to receive EAPOL response

This patch fixes nl80211 driver to receive EAPOL response if wlan0 was
added to bridge.
This commit is contained in:
Artem Antonov 2008-04-08 09:49:06 +03:00 committed by Jouni Malinen
parent 8738e4fc55
commit eaaab2bd98

View file

@ -51,6 +51,7 @@ struct i802_driver_data {
struct hostapd_data *hapd; struct hostapd_data *hapd;
char iface[IFNAMSIZ + 1]; char iface[IFNAMSIZ + 1];
int bridge;
int ioctl_sock; /* socket for ioctl() use */ int ioctl_sock; /* socket for ioctl() use */
int wext_sock; /* socket for wireless events */ int wext_sock; /* socket for wireless events */
int eapol_sock; /* socket for EAPOL frames */ int eapol_sock; /* socket for EAPOL frames */
@ -122,6 +123,9 @@ static int have_ifidx(struct i802_driver_data *drv, int ifidx)
{ {
int i; int i;
if (ifidx == drv->bridge)
return 1;
for (i = 0; i < drv->num_if_indices; i++) for (i = 0; i < drv->num_if_indices; i++)
if (drv->if_indices[i] == ifidx) if (drv->if_indices[i] == ifidx)
return 1; return 1;
@ -2280,6 +2284,7 @@ static void *i802_init_bssid(struct hostapd_data *hapd, const u8 *bssid)
drv->num_if_indices = sizeof(drv->default_if_indices) / sizeof(int); drv->num_if_indices = sizeof(drv->default_if_indices) / sizeof(int);
drv->if_indices = drv->default_if_indices; drv->if_indices = drv->default_if_indices;
drv->bridge = if_nametoindex(hapd->conf->bridge);
if (i802_init_sockets(drv, bssid)) if (i802_init_sockets(drv, bssid))
goto failed; goto failed;