/*
* wpa_supplicant - Internal definitions
- * Copyright (c) 2003-2007, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2003-2010, 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
#ifndef WPA_SUPPLICANT_I_H
#define WPA_SUPPLICANT_I_H
+#include "utils/list.h"
#include "common/defs.h"
extern const char *wpa_supplicant_version;
extern const char *wpa_supplicant_full_license5;
#endif /* CONFIG_NO_STDOUT_DEBUG */
-struct wpa_scan_result;
-struct wpa_scan_res;
struct wpa_sm;
struct wpa_supplicant;
struct ibss_rsn;
+struct scan_info;
+struct wpa_bss;
/*
* Forward declarations of private structures used within the ctrl_iface
*/
struct ctrl_iface_priv;
struct ctrl_iface_global_priv;
-struct ctrl_iface_dbus_priv;
+struct wpas_dbus_priv;
/**
* struct wpa_interface - Parameters for wpa_supplicant_add_iface()
struct wpa_supplicant *ifaces;
struct wpa_params params;
struct ctrl_iface_global_priv *ctrl_iface;
- /* old DBus API data */
- struct ctrl_iface_dbus_priv *dbus_ctrl_iface;
- /* new DBus API data */
- struct ctrl_iface_dbus_new_priv *dbus_new_ctrl_iface;
+ struct wpas_dbus_priv *dbus;
void **drv_priv;
size_t drv_count;
+ struct os_time suspend_time;
};
struct os_time last_probe;
-#define IEEE80211_AUTH_ALG_OPEN BIT(0)
-#define IEEE80211_AUTH_ALG_SHARED_KEY BIT(1)
-#define IEEE80211_AUTH_ALG_LEAP BIT(2)
- unsigned int auth_algs; /* bitfield of allowed auth algs */
+ unsigned int auth_algs; /* bitfield of allowed auth algs
+ * (WPA_AUTH_ALG_*) */
int auth_alg; /* currently used IEEE 802.11 authentication algorithm */
int auth_transaction;
u8 scan_ssid[32];
size_t scan_ssid_len;
int scan_skip_11b;
+ int *scan_freqs;
struct ieee80211_sta_bss *sta_bss_list;
#define STA_HASH_SIZE 256
int disconnected; /* all connections disabled; i.e., do no reassociate
* before this has been cleared */
struct wpa_ssid *current_ssid;
+ struct wpa_bss *current_bss;
int ap_ies_from_associnfo;
+ unsigned int assoc_freq;
/* Selected configuration (based on Beacon/ProbeResp WPA IE) */
int pairwise_cipher;
*/
#define WILDCARD_SSID_SCAN ((struct wpa_ssid *) 1)
- struct wpa_scan_results *scan_res;
+ struct dl_list bss; /* struct wpa_bss::list */
+ struct dl_list bss_id; /* struct wpa_bss::list_id */
+ size_t num_bss;
+ unsigned int bss_update_idx;
+ unsigned int bss_next_id;
struct wpa_driver_ops *driver;
int interface_removed; /* whether the network interface has been
struct wpa_client_mlme mlme;
unsigned int drv_flags;
int max_scan_ssids;
+ unsigned int max_remain_on_chan;
int pending_mic_error_report;
int pending_mic_error_pairwise;
size_t ft_ies_len;
u8 prev_bssid[ETH_ALEN];
int prev_bssid_set;
+ int auth_alg;
} sme;
#endif /* CONFIG_SME */
struct wpa_ssid *bgscan_ssid;
const struct bgscan_ops *bgscan;
void *bgscan_priv;
+
+ int after_wps;
+ unsigned int wps_freq;
};
const char * wpa_supplicant_state_txt(enum wpa_states state);
int wpa_supplicant_driver_init(struct wpa_supplicant *wpa_s);
int wpa_supplicant_set_suites(struct wpa_supplicant *wpa_s,
- struct wpa_scan_res *bss,
- struct wpa_ssid *ssid,
+ struct wpa_bss *bss, struct wpa_ssid *ssid,
u8 *wpa_ie, size_t *wpa_ie_len);
void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
- struct wpa_scan_res *bss,
+ struct wpa_bss *bss,
struct wpa_ssid *ssid);
void wpa_supplicant_set_non_wpa_policy(struct wpa_supplicant *wpa_s,
struct wpa_ssid *ssid);
void wpa_supplicant_initiate_eapol(struct wpa_supplicant *wpa_s);
-int wpa_supplicant_get_scan_results(struct wpa_supplicant *wpa_s);
void wpa_clear_keys(struct wpa_supplicant *wpa_s, const u8 *addr);
void wpa_supplicant_req_auth_timeout(struct wpa_supplicant *wpa_s,
int sec, int usec);
int wpa_supplicant_scard_init(struct wpa_supplicant *wpa_s,
struct wpa_ssid *ssid);
void wpa_supplicant_terminate_proc(struct wpa_global *global);
-
-/* scan.c */
-int wpa_supplicant_enabled_networks(struct wpa_config *conf);
-void wpa_supplicant_req_scan(struct wpa_supplicant *wpa_s, int sec, int usec);
-void wpa_supplicant_cancel_scan(struct wpa_supplicant *wpa_s);
-void wpa_supplicant_notify_scanning(struct wpa_supplicant *wpa_s,
- int scanning);
-struct wpa_driver_scan_params;
-int wpa_supplicant_trigger_scan(struct wpa_supplicant *wpa_s,
- struct wpa_driver_scan_params *params);
+void wpa_supplicant_rx_eapol(void *ctx, const u8 *src_addr,
+ const u8 *buf, size_t len);
/* events.c */
void wpa_supplicant_mark_disassoc(struct wpa_supplicant *wpa_s);
+void wpa_supplicant_connect(struct wpa_supplicant *wpa_s,
+ struct wpa_bss *selected,
+ struct wpa_ssid *ssid);
/* eap_register.c */
int eap_register_methods(void);