Fix privsep build with CONFIG_CLIENT_MLME=y

Add wpa_supplicant_sta_free_hw_features() and wpa_supplicant_sta_rx()
for driver wrappers in wpa_priv.
This commit is contained in:
Jouni Malinen 2009-02-07 10:30:32 +02:00
parent 716d543d5c
commit 96c7c3072d
3 changed files with 74 additions and 4 deletions

View file

@ -1,6 +1,6 @@
/*
* WPA Supplicant - privilege separation commands
* Copyright (c) 2007, Jouni Malinen <j@w1.fi>
* Copyright (c) 2007-2009, Jouni Malinen <j@w1.fi>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@ -71,6 +71,7 @@ enum privsep_event {
PRIVSEP_EVENT_STKSTART,
PRIVSEP_EVENT_FT_RESPONSE,
PRIVSEP_EVENT_RX_EAPOL,
PRIVSEP_EVENT_STA_RX,
};
#endif /* PRIVSEP_COMMANDS_H */

View file

@ -1,6 +1,6 @@
/*
* WPA Supplicant - privilege separated driver interface
* Copyright (c) 2007, Jouni Malinen <j@w1.fi>
* Copyright (c) 2007-2009, Jouni Malinen <j@w1.fi>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@ -443,6 +443,22 @@ static void wpa_driver_privsep_event_rx_eapol(void *ctx, u8 *buf, size_t len)
}
static void wpa_driver_privsep_event_sta_rx(void *ctx, u8 *buf, size_t len)
{
#ifdef CONFIG_CLIENT_MLME
struct ieee80211_rx_status *rx_status;
if (len < sizeof(*rx_status))
return;
rx_status = (struct ieee80211_rx_status *) buf;
buf += sizeof(*rx_status);
len -= sizeof(*rx_status);
wpa_supplicant_sta_rx(ctx, buf, len, rx_status);
#endif /* CONFIG_CLIENT_MLME */
}
static void wpa_driver_privsep_receive(int sock, void *eloop_ctx,
void *sock_ctx)
{
@ -518,6 +534,11 @@ static void wpa_driver_privsep_receive(int sock, void *eloop_ctx,
case PRIVSEP_EVENT_RX_EAPOL:
wpa_driver_privsep_event_rx_eapol(drv->ctx, event_buf,
event_len);
break;
case PRIVSEP_EVENT_STA_RX:
wpa_driver_privsep_event_sta_rx(drv->ctx, event_buf,
event_len);
break;
}
os_free(buf);