Move EAP method registration away from src/eap_{peer,server}
[mech_eap.git] / hostapd / hostapd.h
index 0f1d684..1c6372c 100644 (file)
@@ -17,8 +17,7 @@
 #ifndef HOSTAPD_H
 #define HOSTAPD_H
 
-#include "common.h"
-#include "hostapd_defs.h"
+#define MAX_VLAN_ID 4094
 
 struct wpa_driver_ops;
 struct wpa_ctrl_dst;
@@ -29,6 +28,11 @@ struct upnp_wps_device_sm;
 struct full_dynamic_vlan;
 #endif /* CONFIG_FULL_DYNAMIC_VLAN */
 
+struct hostapd_probereq_cb {
+       void (*cb)(void *ctx, const u8 *sa, const u8 *ie, size_t ie_len);
+       void *ctx;
+};
+
 /**
  * struct hostapd_data - hostapd per-BSS data structure
  */
@@ -57,8 +61,7 @@ struct hostapd_data {
        const struct wpa_driver_ops *driver;
        void *drv_priv;
 
-       u8 *default_wep_key;
-       u8 default_wep_key_idx;
+       void *msg_ctx; /* ctx for wpa_msg() calls */
 
        struct radius_client_data *radius;
        int radius_client_reconfigured;
@@ -101,6 +104,9 @@ struct hostapd_data {
        unsigned int ap_pin_failures;
        struct upnp_wps_device_sm *wps_upnp;
 #endif /* CONFIG_WPS */
+
+       struct hostapd_probereq_cb *probereq_cb;
+       size_t num_probereq_cb;
 };
 
 
@@ -108,6 +114,7 @@ struct hostapd_data {
  * struct hostapd_iface - hostapd per-interface data structure
  */
 struct hostapd_iface {
+       void *owner;
        char *config_fname;
        struct hostapd_config *conf;
 
@@ -153,9 +160,8 @@ struct hostapd_iface {
        /* Overlapping BSS information */
        int olbc_ht;
 
-#ifdef CONFIG_IEEE80211N
        u16 ht_op_mode;
-#endif /* CONFIG_IEEE80211N */
+       void (*scan_cb)(struct hostapd_iface *iface);
 };
 
 int hostapd_reload_config(struct hostapd_iface *iface);
@@ -164,6 +170,7 @@ hostapd_alloc_bss_data(struct hostapd_iface *hapd_iface,
                       struct hostapd_config *conf,
                       struct hostapd_bss_config *bss);
 int hostapd_setup_interface(struct hostapd_iface *iface);
+int hostapd_setup_interface_complete(struct hostapd_iface *iface, int err);
 void hostapd_interface_deinit(struct hostapd_iface *iface);
 int handle_reload_iface(struct hostapd_iface *iface, void *ctx);
 int handle_dump_state_iface(struct hostapd_iface *iface, void *ctx);
@@ -171,4 +178,11 @@ int handle_dump_state_iface(struct hostapd_iface *iface, void *ctx);
 int hostapd_for_each_interface(int (*cb)(struct hostapd_iface *iface,
                                         void *ctx), void *ctx);
 
+int hostapd_register_probereq_cb(struct hostapd_data *hapd,
+                                void (*cb)(void *ctx, const u8 *sa,
+                                           const u8 *ie, size_t ie_len),
+                                void *ctx);
+
+int eap_server_register_methods(void);
+
 #endif /* HOSTAPD_H */