From 684a82915860c7147e120d5443d9121b14cae0c3 Mon Sep 17 00:00:00 2001 From: vemax78 Date: Sun, 16 Mar 2014 21:36:01 +0100 Subject: [PATCH] Added the ability to manage timeouts inside the wireless module --- src/binding/ieee80211/wifi_drivers.h | 2 ++ src/binding/ieee80211/wifi_nl80211.c | 1 + src/binding/ieee80211/wifi_nl80211.h | 6 ++++++ src/wtp/wtp_radio.c | 1 + 4 files changed, 10 insertions(+) diff --git a/src/binding/ieee80211/wifi_drivers.h b/src/binding/ieee80211/wifi_drivers.h index a9c93d6..8429b5c 100644 --- a/src/binding/ieee80211/wifi_drivers.h +++ b/src/binding/ieee80211/wifi_drivers.h @@ -99,6 +99,8 @@ struct wlan_startap_params { send_mgmtframe_to_ac send_mgmtframe; void* send_mgmtframe_to_ac_cbparam; + struct capwap_timeout* timeout; + const char* ssid; uint8_t ssid_hidden; uint16_t capability; diff --git a/src/binding/ieee80211/wifi_nl80211.c b/src/binding/ieee80211/wifi_nl80211.c index b1c0a6d..c877eb8 100644 --- a/src/binding/ieee80211/wifi_nl80211.c +++ b/src/binding/ieee80211/wifi_nl80211.c @@ -2361,6 +2361,7 @@ static int nl80211_wlan_startap(wifi_wlan_handle handle, struct wlan_startap_par wlanhandle->tunnelmode = params->tunnelmode; wlanhandle->send_mgmtframe = params->send_mgmtframe; wlanhandle->send_mgmtframe_to_ac_cbparam = params->send_mgmtframe_to_ac_cbparam; + wlanhandle->timeout = params->timeout; /* Set beacon */ if (nl80211_wlan_setbeacon(wlanhandle)) { diff --git a/src/binding/ieee80211/wifi_nl80211.h b/src/binding/ieee80211/wifi_nl80211.h index 38dd0a3..73aa1dc 100644 --- a/src/binding/ieee80211/wifi_nl80211.h +++ b/src/binding/ieee80211/wifi_nl80211.h @@ -100,6 +100,9 @@ struct nl80211_wlan_handle { send_mgmtframe_to_ac send_mgmtframe; void* send_mgmtframe_to_ac_cbparam; + /* */ + struct capwap_timeout* timeout; + /* WLAN information */ char ssid[WIFI_SSID_MAX_LENGTH + 1]; uint8_t ssid_hidden; @@ -144,6 +147,9 @@ struct nl80211_virtdevice_item { struct nl80211_station { unsigned long flags; + /* Timers */ + unsigned long idtimeout; + /* */ uint16_t capability; uint16_t listeninterval; diff --git a/src/wtp/wtp_radio.c b/src/wtp/wtp_radio.c index b778784..194429d 100644 --- a/src/wtp/wtp_radio.c +++ b/src/wtp/wtp_radio.c @@ -634,6 +634,7 @@ uint32_t wtp_radio_create_wlan(struct capwap_parsed_packet* packet, struct capwa memset(¶ms, 0, sizeof(struct wlan_startap_params)); params.send_mgmtframe = wtp_radio_send_mgmtframe_to_ac; params.send_mgmtframe_to_ac_cbparam = (void*)wlan; + params.timeout = g_wtp.timeout; params.ssid = (const char*)addwlan->ssid; params.ssid_hidden = addwlan->suppressssid; params.capability = addwlan->capability;