GAS: Replenish AP station session timer to 5 seconds
If remaining AP session timeout is less than 5 seconds for an existing station, replenish the timeout to 5 seconds. This allows stations to be able to recycle a dialog token value beyond 5 seconds for GAS exchange. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
e5e74e5500
commit
91f9e6078f
3 changed files with 16 additions and 0 deletions
|
@ -46,6 +46,8 @@ gas_dialog_create(struct hostapd_data *hapd, const u8 *addr, u8 dialog_token)
|
|||
* it to be that long.
|
||||
*/
|
||||
ap_sta_session_timeout(hapd, sta, 5);
|
||||
} else {
|
||||
ap_sta_replenish_timeout(hapd, sta, 5);
|
||||
}
|
||||
|
||||
if (sta->gas_dialog == NULL) {
|
||||
|
|
|
@ -490,6 +490,18 @@ static void ap_handle_session_timer(void *eloop_ctx, void *timeout_ctx)
|
|||
}
|
||||
|
||||
|
||||
void ap_sta_replenish_timeout(struct hostapd_data *hapd, struct sta_info *sta,
|
||||
u32 session_timeout)
|
||||
{
|
||||
if (eloop_replenish_timeout(session_timeout, 0,
|
||||
ap_handle_session_timer, hapd, sta)) {
|
||||
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
|
||||
HOSTAPD_LEVEL_DEBUG, "setting session timeout "
|
||||
"to %d seconds", session_timeout);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ap_sta_session_timeout(struct hostapd_data *hapd, struct sta_info *sta,
|
||||
u32 session_timeout)
|
||||
{
|
||||
|
|
|
@ -162,6 +162,8 @@ void ap_sta_hash_add(struct hostapd_data *hapd, struct sta_info *sta);
|
|||
void ap_free_sta(struct hostapd_data *hapd, struct sta_info *sta);
|
||||
void hostapd_free_stas(struct hostapd_data *hapd);
|
||||
void ap_handle_timer(void *eloop_ctx, void *timeout_ctx);
|
||||
void ap_sta_replenish_timeout(struct hostapd_data *hapd, struct sta_info *sta,
|
||||
u32 session_timeout);
|
||||
void ap_sta_session_timeout(struct hostapd_data *hapd, struct sta_info *sta,
|
||||
u32 session_timeout);
|
||||
void ap_sta_no_session_timeout(struct hostapd_data *hapd,
|
||||
|
|
Loading…
Reference in a new issue