Move generic AP functionality implementation into src/ap

This code can be shared by both hostapd and wpa_supplicant and this
is an initial step in getting the generic code moved to be under the
src directories. Couple of generic files still remain under the
hostapd directory due to direct dependencies to files there. Once the
dependencies have been removed, they will also be moved to the src/ap
directory to allow wpa_supplicant to be built without requiring anything
from the hostapd directory.
This commit is contained in:
Jouni Malinen 2009-12-25 01:12:50 +02:00
parent 6d1278e998
commit 1057d78eb8
55 changed files with 142 additions and 125 deletions

View file

@ -32,14 +32,23 @@ CFLAGS += -DCONFIG_NATIVE_WINDOWS
LIBS += -lws2_32 LIBS += -lws2_32
endif endif
OBJS = hostapd.o main.o ieee802_1x.o \ OBJS = hostapd.o
config.o config_file.o ieee802_11_auth.o \ OBJS += main.o
sta_info.o wpa.o \ OBJS += config_file.o
preauth.o pmksa_cache.o \ OBJS += drv_callbacks.o
drv_callbacks.o \
tkip_countermeasures.o \
mlme.o wpa_auth_ie.o
OBJS += ap_drv_ops.o OBJS += ap_drv_ops.o
OBJS += ../src/ap/ieee802_1x.o
OBJS += ../src/ap/config.o
OBJS += ../src/ap/ieee802_11_auth.o
OBJS += ../src/ap/sta_info.o
OBJS += ../src/ap/wpa.o
OBJS += ../src/ap/tkip_countermeasures.o
OBJS += ../src/ap/mlme.o
OBJS += ../src/ap/wpa_auth_ie.o
OBJS += ../src/ap/preauth.o
OBJS += ../src/ap/pmksa_cache.o
NEED_RC4=y NEED_RC4=y
NEED_AES=y NEED_AES=y
NEED_MD5=y NEED_MD5=y
@ -93,13 +102,13 @@ endif
ifdef CONFIG_NO_ACCOUNTING ifdef CONFIG_NO_ACCOUNTING
CFLAGS += -DCONFIG_NO_ACCOUNTING CFLAGS += -DCONFIG_NO_ACCOUNTING
else else
OBJS += accounting.o OBJS += ../src/ap/accounting.o
endif endif
ifdef CONFIG_NO_VLAN ifdef CONFIG_NO_VLAN
CFLAGS += -DCONFIG_NO_VLAN CFLAGS += -DCONFIG_NO_VLAN
else else
OBJS += vlan_init.o OBJS += ../src/ap/vlan_init.o
endif endif
ifdef CONFIG_NO_CTRL_IFACE ifdef CONFIG_NO_CTRL_IFACE
@ -125,7 +134,7 @@ endif
ifdef CONFIG_PEERKEY ifdef CONFIG_PEERKEY
CFLAGS += -DCONFIG_PEERKEY CFLAGS += -DCONFIG_PEERKEY
OBJS += peerkey.o OBJS += ../src/ap/peerkey.o
endif endif
ifdef CONFIG_IEEE80211W ifdef CONFIG_IEEE80211W
@ -136,7 +145,7 @@ endif
ifdef CONFIG_IEEE80211R ifdef CONFIG_IEEE80211R
CFLAGS += -DCONFIG_IEEE80211R CFLAGS += -DCONFIG_IEEE80211R
OBJS += wpa_ft.o OBJS += ../src/ap/wpa_ft.o
NEED_SHA256=y NEED_SHA256=y
NEED_AES_OMAC1=y NEED_AES_OMAC1=y
NEED_AES_UNWRAP=y NEED_AES_UNWRAP=y
@ -677,10 +686,13 @@ OBJS += ../src/utils/base64.o
endif endif
ifdef NEED_AP_MLME ifdef NEED_AP_MLME
OBJS += beacon.o wme.o ap_list.o ieee802_11.o OBJS += ../src/ap/beacon.o
OBJS += ../src/ap/wmm.o
OBJS += ../src/ap/ap_list.o
OBJS += ../src/ap/ieee802_11.o
OBJS += hw_features.o OBJS += hw_features.o
ifdef CONFIG_IEEE80211N ifdef CONFIG_IEEE80211N
OBJS += ieee802_11_ht.o OBJS += ../src/ap/ieee802_11_ht.o
endif endif
CFLAGS += -DNEED_AP_MLME CFLAGS += -DNEED_AP_MLME
endif endif

View file

@ -15,9 +15,9 @@
#include "includes.h" #include "includes.h"
#include "common.h" #include "common.h"
#include "hostapd.h" #include "ap/hostapd.h"
#include "ieee802_11.h" #include "ap/ieee802_11.h"
#include "sta_info.h" #include "ap/sta_info.h"
#include "driver_i.h" #include "driver_i.h"

View file

@ -23,8 +23,9 @@
#include "drivers/driver.h" #include "drivers/driver.h"
#include "eap_server/eap.h" #include "eap_server/eap.h"
#include "radius/radius_client.h" #include "radius/radius_client.h"
#include "wpa.h" #include "ap/wpa.h"
#include "config.h" #include "ap/config.h"
#include "config_file.h"
extern struct wpa_driver_ops *wpa_drivers[]; extern struct wpa_driver_ops *wpa_drivers[];

View file

@ -21,18 +21,18 @@
#include <stddef.h> #include <stddef.h>
#include "common.h" #include "common.h"
#include "hostapd.h"
#include "eloop.h" #include "eloop.h"
#include "config.h"
#include "ieee802_1x.h"
#include "wpa.h"
#include "radius/radius_client.h"
#include "ieee802_11.h"
#include "ctrl_iface.h"
#include "sta_info.h"
#include "accounting.h"
#include "wps_hostapd.h"
#include "drivers/driver.h" #include "drivers/driver.h"
#include "radius/radius_client.h"
#include "ap/hostapd.h"
#include "ap/config.h"
#include "ap/ieee802_1x.h"
#include "ap/wpa.h"
#include "ap/ieee802_11.h"
#include "ap/sta_info.h"
#include "ap/accounting.h"
#include "ctrl_iface.h"
#include "wps_hostapd.h"
#include "ctrl_iface_ap.h" #include "ctrl_iface_ap.h"

View file

@ -15,11 +15,11 @@
#include "includes.h" #include "includes.h"
#include "common.h" #include "common.h"
#include "hostapd.h" #include "ap/hostapd.h"
#include "ieee802_1x.h" #include "ap/ieee802_1x.h"
#include "wpa.h" #include "ap/wpa.h"
#include "ieee802_11.h" #include "ap/ieee802_11.h"
#include "sta_info.h" #include "ap/sta_info.h"
#include "wps_hostapd.h" #include "wps_hostapd.h"
#include "ctrl_iface_ap.h" #include "ctrl_iface_ap.h"

View file

@ -16,7 +16,7 @@
#define DRIVER_I_H #define DRIVER_I_H
#include "drivers/driver.h" #include "drivers/driver.h"
#include "config.h" #include "ap/config.h"
static inline void * static inline void *
hostapd_driver_init(struct hostapd_data *hapd, const u8 *bssid) hostapd_driver_init(struct hostapd_data *hapd, const u8 *bssid)

View file

@ -15,17 +15,17 @@
#include "includes.h" #include "includes.h"
#include "common.h" #include "common.h"
#include "hostapd.h"
#include "driver_i.h"
#include "ieee802_11.h"
#include "radius/radius.h" #include "radius/radius.h"
#include "sta_info.h" #include "ap/hostapd.h"
#include "accounting.h" #include "ap/ieee802_11.h"
#include "tkip_countermeasures.h" #include "ap/sta_info.h"
#include "ieee802_1x.h" #include "ap/accounting.h"
#include "wpa.h" #include "ap/tkip_countermeasures.h"
#include "ap/ieee802_1x.h"
#include "ap/wpa.h"
#include "ap/wmm.h"
#include "driver_i.h"
#include "iapp.h" #include "iapp.h"
#include "wme.h"
#include "wps_hostapd.h" #include "wps_hostapd.h"

View file

@ -21,9 +21,9 @@
#include "eapol_auth/eapol_auth_sm.h" #include "eapol_auth/eapol_auth_sm.h"
#include "eapol_auth/eapol_auth_sm_i.h" #include "eapol_auth/eapol_auth_sm_i.h"
#include "eap_server/eap.h" #include "eap_server/eap.h"
#include "hostapd.h" #include "ap/hostapd.h"
#include "config.h" #include "ap/config.h"
#include "sta_info.h" #include "ap/sta_info.h"
static void fprint_char(FILE *f, char c) static void fprint_char(FILE *f, char c)

View file

@ -26,22 +26,22 @@
#include "eap_server/eap.h" #include "eap_server/eap.h"
#include "eap_server/tncs.h" #include "eap_server/tncs.h"
#include "l2_packet/l2_packet.h" #include "l2_packet/l2_packet.h"
#include "hostapd.h" #include "ap/hostapd.h"
#include "ieee802_1x.h" #include "ap/sta_info.h"
#include "beacon.h" #include "ap/accounting.h"
#include "ap/ap_list.h"
#include "ap/beacon.h"
#include "ap/ieee802_1x.h"
#include "ap/ieee802_11_auth.h"
#include "ap/preauth.h"
#include "ap/tkip_countermeasures.h"
#include "ap/vlan_init.h"
#include "ap/wpa.h"
#include "hw_features.h" #include "hw_features.h"
#include "accounting.h"
#include "iapp.h" #include "iapp.h"
#include "ieee802_11_auth.h"
#include "sta_info.h"
#include "ap_list.h"
#include "driver_i.h" #include "driver_i.h"
#include "wpa.h"
#include "preauth.h"
#include "vlan_init.h"
#include "ctrl_iface.h" #include "ctrl_iface.h"
#include "wps_hostapd.h" #include "wps_hostapd.h"
#include "tkip_countermeasures.h"
static int hostapd_flush_old_stations(struct hostapd_data *hapd); static int hostapd_flush_old_stations(struct hostapd_data *hapd);

View file

@ -2,7 +2,7 @@
* hostapd / Hardware feature query and different modes * hostapd / Hardware feature query and different modes
* Copyright 2002-2003, Instant802 Networks, Inc. * Copyright 2002-2003, Instant802 Networks, Inc.
* Copyright 2005-2006, Devicescape Software, Inc. * Copyright 2005-2006, Devicescape Software, Inc.
* Copyright (c) 2008, Jouni Malinen <j@w1.fi> * Copyright (c) 2008-2009, Jouni Malinen <j@w1.fi>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License version 2 as
@ -14,16 +14,16 @@
* See README and COPYING for more details. * See README and COPYING for more details.
*/ */
#include "includes.h" #include "utils/includes.h"
#include "common.h" #include "utils/common.h"
#include "hostapd.h" #include "utils/eloop.h"
#include "common/ieee802_11_defs.h" #include "common/ieee802_11_defs.h"
#include "common/ieee802_11_common.h" #include "common/ieee802_11_common.h"
#include "eloop.h" #include "ap/hostapd.h"
#include "ap/config.h"
#include "hw_features.h" #include "hw_features.h"
#include "driver_i.h" #include "driver_i.h"
#include "config.h"
void hostapd_free_hw_features(struct hostapd_hw_modes *hw_features, void hostapd_free_hw_features(struct hostapd_hw_modes *hw_features,

View file

@ -37,7 +37,7 @@
* - IEEE 802.11 context transfer * - IEEE 802.11 context transfer
*/ */
#include "includes.h" #include "utils/includes.h"
#include <net/if.h> #include <net/if.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>
#ifdef USE_KERNEL_HEADERS #ifdef USE_KERNEL_HEADERS
@ -46,13 +46,13 @@
#include <netpacket/packet.h> #include <netpacket/packet.h>
#endif /* USE_KERNEL_HEADERS */ #endif /* USE_KERNEL_HEADERS */
#include "common.h" #include "utils/common.h"
#include "hostapd.h" #include "utils/eloop.h"
#include "config.h" #include "ap/hostapd.h"
#include "ieee802_11.h" #include "ap/config.h"
#include "ap/ieee802_11.h"
#include "ap/sta_info.h"
#include "iapp.h" #include "iapp.h"
#include "eloop.h"
#include "sta_info.h"
#define IAPP_MULTICAST "224.0.1.178" #define IAPP_MULTICAST "224.0.1.178"

View file

@ -23,8 +23,8 @@
#include "common/version.h" #include "common/version.h"
#include "eap_server/eap.h" #include "eap_server/eap.h"
#include "eap_server/tncs.h" #include "eap_server/tncs.h"
#include "hostapd.h" #include "ap/hostapd.h"
#include "config.h" #include "ap/config.h"
#include "config_file.h" #include "config_file.h"

View file

@ -12,11 +12,11 @@
* See README and COPYING for more details. * See README and COPYING for more details.
*/ */
#include "includes.h" #include "utils/includes.h"
#include "common.h" #include "utils/common.h"
#include "eloop.h" #include "utils/eloop.h"
#include "uuid.h" #include "utils/uuid.h"
#include "crypto/dh_groups.h" #include "crypto/dh_groups.h"
#include "common/wpa_ctrl.h" #include "common/wpa_ctrl.h"
#include "common/ieee802_11_defs.h" #include "common/ieee802_11_defs.h"
@ -26,9 +26,9 @@
#include "wps/wps.h" #include "wps/wps.h"
#include "wps/wps_defs.h" #include "wps/wps_defs.h"
#include "wps/wps_dev_attr.h" #include "wps/wps_dev_attr.h"
#include "hostapd.h" #include "ap/hostapd.h"
#include "config.h" #include "ap/config.h"
#include "sta_info.h" #include "ap/sta_info.h"
#include "wps_hostapd.h" #include "wps_hostapd.h"

View file

@ -1,4 +1,4 @@
SUBDIRS=common crypto drivers eapol_auth eapol_supp eap_common eap_peer eap_server l2_packet radius rsn_supp tls utils wps SUBDIRS=ap common crypto drivers eapol_auth eapol_supp eap_common eap_peer eap_server l2_packet radius rsn_supp tls utils wps
all: all:
for d in $(SUBDIRS); do [ -d $$d ] && $(MAKE) -C $$d; done for d in $(SUBDIRS); do [ -d $$d ] && $(MAKE) -C $$d; done

9
src/ap/Makefile Normal file
View file

@ -0,0 +1,9 @@
all:
@echo Nothing to be made.
clean:
for d in $(SUBDIRS); do make -C $$d clean; done
rm -f *~ *.o *.d
install:
@echo Nothing to be made.

View file

@ -1,6 +1,6 @@
/* /*
* hostapd / AP table * hostapd / AP table
* Copyright (c) 2002-2003, Jouni Malinen <j@w1.fi> * Copyright (c) 2002-2009, Jouni Malinen <j@w1.fi>
* Copyright (c) 2003-2004, Instant802 Networks, Inc. * Copyright (c) 2003-2004, Instant802 Networks, Inc.
* Copyright (c) 2006, Devicescape Software, Inc. * Copyright (c) 2006, Devicescape Software, Inc.
* *
@ -14,18 +14,17 @@
* See README and COPYING for more details. * See README and COPYING for more details.
*/ */
#include "includes.h" #include "utils/includes.h"
#include "common.h" #include "utils/common.h"
#include "utils/eloop.h"
#include "drivers/driver.h"
#include "hostapd.h" #include "hostapd.h"
#include "config.h" #include "config.h"
#include "ieee802_11.h" #include "ieee802_11.h"
#include "eloop.h"
#include "sta_info.h" #include "sta_info.h"
#include "ap_list.h"
#include "hw_features.h"
#include "beacon.h" #include "beacon.h"
#include "drivers/driver.h" #include "ap_list.h"
/* AP list is a double linked list with head->prev pointing to the end of the /* AP list is a double linked list with head->prev pointing to the end of the

View file

@ -22,9 +22,8 @@
#include "hostapd.h" #include "hostapd.h"
#include "ieee802_11.h" #include "ieee802_11.h"
#include "wpa.h" #include "wpa.h"
#include "wme.h" #include "wmm.h"
#include "beacon.h" #include "beacon.h"
#include "hw_features.h"
#include "drivers/driver.h" #include "drivers/driver.h"
#include "config.h" #include "config.h"
#include "sta_info.h" #include "sta_info.h"

View file

@ -12,12 +12,12 @@
* See README and COPYING for more details. * See README and COPYING for more details.
*/ */
#include "includes.h" #include "utils/includes.h"
#ifndef CONFIG_NATIVE_WINDOWS #ifndef CONFIG_NATIVE_WINDOWS
#include "common.h" #include "utils/common.h"
#include "eloop.h" #include "utils/eloop.h"
#include "crypto/crypto.h" #include "crypto/crypto.h"
#include "drivers/driver.h" #include "drivers/driver.h"
#include "common/wpa_ctrl.h" #include "common/wpa_ctrl.h"
@ -26,12 +26,11 @@
#include "hostapd.h" #include "hostapd.h"
#include "ieee802_11.h" #include "ieee802_11.h"
#include "beacon.h" #include "beacon.h"
#include "hw_features.h"
#include "ieee802_11_auth.h" #include "ieee802_11_auth.h"
#include "sta_info.h" #include "sta_info.h"
#include "ieee802_1x.h" #include "ieee802_1x.h"
#include "wpa.h" #include "wpa.h"
#include "wme.h" #include "wmm.h"
#include "ap_list.h" #include "ap_list.h"
#include "accounting.h" #include "accounting.h"
#include "config.h" #include "config.h"

View file

@ -32,7 +32,6 @@
#include "preauth.h" #include "preauth.h"
#include "pmksa_cache.h" #include "pmksa_cache.h"
#include "config.h" #include "config.h"
#include "hw_features.h"
#include "eap_server/eap.h" #include "eap_server/eap.h"

View file

@ -28,7 +28,6 @@
#include "preauth.h" #include "preauth.h"
#include "config.h" #include "config.h"
#include "beacon.h" #include "beacon.h"
#include "hw_features.h"
#include "mlme.h" #include "mlme.h"
#include "vlan_init.h" #include "vlan_init.h"

View file

@ -18,9 +18,9 @@
#include "common.h" #include "common.h"
#include "hostapd.h" #include "hostapd.h"
#include "ieee802_11.h" #include "ieee802_11.h"
#include "wme.h"
#include "sta_info.h" #include "sta_info.h"
#include "config.h" #include "config.h"
#include "wmm.h"
/* TODO: maintain separate sequence and fragment numbers for each AC /* TODO: maintain separate sequence and fragment numbers for each AC

View file

@ -19,7 +19,7 @@
#include "config.h" #include "config.h"
#include "wpa.h" #include "wpa.h"
#include "ieee802_11.h" #include "ieee802_11.h"
#include "wme.h" #include "wmm.h"
#include "wpa_auth_i.h" #include "wpa_auth_i.h"
#include "wpa_auth_ie.h" #include "wpa_auth_ie.h"

View file

@ -588,14 +588,14 @@ CFLAGS += -DCONFIG_NO_RADIUS
CFLAGS += -DCONFIG_NO_ACCOUNTING CFLAGS += -DCONFIG_NO_ACCOUNTING
CFLAGS += -DCONFIG_NO_VLAN CFLAGS += -DCONFIG_NO_VLAN
OBJS += ../hostapd/hostapd.o OBJS += ../hostapd/hostapd.o
OBJS += ../hostapd/config.o OBJS += ../src/ap/config.o
OBJS += ../src/utils/ip_addr.o OBJS += ../src/utils/ip_addr.o
OBJS += ../hostapd/sta_info.o OBJS += ../src/ap/sta_info.o
OBJS += ../hostapd/tkip_countermeasures.o OBJS += ../src/ap/tkip_countermeasures.o
OBJS += ../hostapd/mlme.o OBJS += ../src/ap/mlme.o
OBJS += ../hostapd/ieee802_1x.o OBJS += ../src/ap/ieee802_1x.o
OBJS += ../src/eapol_auth/eapol_auth_sm.o OBJS += ../src/eapol_auth/eapol_auth_sm.o
OBJS += ../hostapd/ieee802_11_auth.o OBJS += ../src/ap/ieee802_11_auth.o
OBJS += ../hostapd/drv_callbacks.o OBJS += ../hostapd/drv_callbacks.o
OBJS += ../hostapd/ap_drv_ops.o OBJS += ../hostapd/ap_drv_ops.o
ifdef CONFIG_CTRL_IFACE ifdef CONFIG_CTRL_IFACE
@ -612,13 +612,13 @@ CFLAGS += -DCONFIG_IEEE80211N
endif endif
ifdef NEED_AP_MLME ifdef NEED_AP_MLME
OBJS += ../hostapd/beacon.o OBJS += ../src/ap/beacon.o
OBJS += ../hostapd/wme.o OBJS += ../src/ap/wmm.o
OBJS += ../hostapd/ap_list.o OBJS += ../src/ap/ap_list.o
OBJS += ../hostapd/ieee802_11.o OBJS += ../src/ap/ieee802_11.o
OBJS += ../hostapd/hw_features.o OBJS += ../hostapd/hw_features.o
ifdef CONFIG_IEEE80211N ifdef CONFIG_IEEE80211N
OBJS += ../hostapd/ieee802_11_ht.o OBJS += ../src/ap/ieee802_11_ht.o
endif endif
CFLAGS += -DNEED_AP_MLME CFLAGS += -DNEED_AP_MLME
endif endif
@ -632,14 +632,14 @@ endif
ifdef NEED_RSN_AUTHENTICATOR ifdef NEED_RSN_AUTHENTICATOR
CFLAGS += -DCONFIG_NO_RADIUS CFLAGS += -DCONFIG_NO_RADIUS
NEED_AES_WRAP=y NEED_AES_WRAP=y
OBJS += ../hostapd/wpa.o OBJS += ../src/ap/wpa.o
OBJS += ../hostapd/wpa_auth_ie.o OBJS += ../src/ap/wpa_auth_ie.o
OBJS += ../hostapd/pmksa_cache.o OBJS += ../src/ap/pmksa_cache.o
ifdef CONFIG_IEEE80211R ifdef CONFIG_IEEE80211R
OBJS += ../hostapd/wpa_ft.o OBJS += ../src/ap/wpa_ft.o
endif endif
ifdef CONFIG_PEERKEY ifdef CONFIG_PEERKEY
OBJS += ../hostapd/peerkey.o OBJS += ../src/ap/peerkey.o
endif endif
endif endif
@ -658,18 +658,18 @@ endif
ifdef CONFIG_AUTHENTICATOR ifdef CONFIG_AUTHENTICATOR
OBJS_h += ../src/eapol_auth/eapol_auth_sm.o OBJS_h += ../src/eapol_auth/eapol_auth_sm.o
OBJS_h += ../hostapd/ieee802_1x.o OBJS_h += ../src/ap/ieee802_1x.o
endif endif
ifdef CONFIG_WPA_AUTHENTICATOR ifdef CONFIG_WPA_AUTHENTICATOR
OBJS_h += ../hostapd/wpa.o OBJS_h += ../src/ap/wpa.o
OBJS_h += ../hostapd/wpa_auth_ie.o OBJS_h += ../src/ap/wpa_auth_ie.o
OBJS_h += ../hostapd/pmksa_cache.o OBJS_h += ../src/ap/pmksa_cache.o
ifdef CONFIG_IEEE80211R ifdef CONFIG_IEEE80211R
OBJS_h += ../hostapd/wpa_ft.o OBJS_h += ../src/ap/wpa_ft.o
endif endif
ifdef CONFIG_PEERKEY ifdef CONFIG_PEERKEY
OBJS_h += ../hostapd/peerkey.o OBJS_h += ../src/ap/peerkey.o
endif endif
endif endif

View file

@ -16,10 +16,10 @@
#include "includes.h" #include "includes.h"
#include "common.h" #include "common.h"
#include "../hostapd/hostapd.h" #include "ap/hostapd.h"
#include "../hostapd/config.h" #include "ap/config.h"
#ifdef NEED_AP_MLME #ifdef NEED_AP_MLME
#include "../hostapd/ieee802_11.h" #include "ap/ieee802_11.h"
#endif /* NEED_AP_MLME */ #endif /* NEED_AP_MLME */
#include "../hostapd/wps_hostapd.h" #include "../hostapd/wps_hostapd.h"
#include "../hostapd/ctrl_iface_ap.h" #include "../hostapd/ctrl_iface_ap.h"

View file

@ -16,11 +16,11 @@
#include "common.h" #include "common.h"
#include "l2_packet/l2_packet.h" #include "l2_packet/l2_packet.h"
#include "wpa_supplicant_i.h"
#include "rsn_supp/wpa.h" #include "rsn_supp/wpa.h"
#include "rsn_supp/wpa_ie.h" #include "rsn_supp/wpa_ie.h"
#include "ap/wpa.h"
#include "wpa_supplicant_i.h"
#include "driver_i.h" #include "driver_i.h"
#include "../hostapd/wpa.h"
#include "ibss_rsn.h" #include "ibss_rsn.h"