WPS: Add option for forcing Registrar to use PSK format in Credential
[libeap.git] / hostapd / hostapd.h
index 0f1d684..c9ee3dd 100644 (file)
@@ -1,8 +1,6 @@
 /*
  * hostapd / Initialization and configuration
- * Host AP kernel driver
  * Copyright (c) 2002-2008, Jouni Malinen <j@w1.fi>
- * Copyright (c) 2007-2008, Intel Corporation
  *
  * 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
 #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;
 struct radius_server_data;
 struct upnp_wps_device_sm;
+struct hapd_interfaces;
 
 #ifdef CONFIG_FULL_DYNAMIC_VLAN
 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;
+};
+
+#define HOSTAPD_RATE_BASIC 0x00000001
+
+struct hostapd_rate_data {
+       int rate; /* rate in 100 kbps */
+       int flags; /* HOSTAPD_RATE_ flags */
+};
+
+
 /**
  * struct hostapd_data - hostapd per-BSS data structure
  */
@@ -57,11 +68,9 @@ 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;
        u32 acct_session_id_hi, acct_session_id_lo;
 
        struct iapp_data *iapp;
@@ -101,6 +110,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 +120,8 @@ struct hostapd_data {
  * struct hostapd_iface - hostapd per-interface data structure
  */
 struct hostapd_iface {
+       struct hapd_interfaces *interfaces;
+       void *owner;
        char *config_fname;
        struct hostapd_config *conf;
 
@@ -153,9 +167,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,11 +177,23 @@ 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);
 
-int hostapd_for_each_interface(int (*cb)(struct hostapd_iface *iface,
+int hostapd_for_each_interface(struct hapd_interfaces *interfaces,
+                              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 hostapd_set_drv_ieee8021x(struct hostapd_data *hapd, const char *ifname,
+                             int enabled);
+int hostapd_sta_flags_to_drv(int flags);
+
+int eap_server_register_methods(void);
+
 #endif /* HOSTAPD_H */