Message ID | 1357106656-6605-2-git-send-email-jan@jvales.net |
---|---|
State | Superseded |
Headers | show |
On 01/02/2013 11:34 AM, Jan Vales wrote: > Signed-hostap: Jan Vales <jan@jvales.net> > --- > src/ap/ieee802_11.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c > index 51c8d28..d9ec8b2 100644 > --- a/src/ap/ieee802_11.c > +++ b/src/ap/ieee802_11.c > @@ -1351,6 +1351,8 @@ static void handle_deauth(struct hostapd_data *hapd, > const struct ieee80211_mgmt *mgmt, size_t len) > { > struct sta_info *sta; > + struct hostap_sta_driver_data data; > + struct os_time now; > > if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.deauth)) { > wpa_msg(hapd->msg_ctx, MSG_DEBUG, "handle_deauth - too short " > @@ -1374,8 +1376,18 @@ static void handle_deauth(struct hostapd_data *hapd, > sta->flags &= ~(WLAN_STA_AUTH | WLAN_STA_ASSOC | > WLAN_STA_ASSOC_REQ_OK); > wpa_auth_sm_event(sta->wpa_sm, WPA_DEAUTH); > - hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211, > + > + if (hostapd_drv_read_sta_data(hapd, &data, sta->addr) == 0) { > + os_get_time(&now); > + hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211, > + HOSTAPD_LEVEL_INFO, > + "deauthenticated. Stats: session=%08X-%08X; duration=%ld; rx_pkt=%lu; tx_pkt=%lu; rx_byte=%lu; tx_byte=%lu; (mind a possible counter wrap)", > + sta->acct_session_id_hi, sta->acct_session_id_lo, (now.sec - sta->acct_session_start), data.rx_packets, data.tx_packets, data.rx_bytes, data.tx_bytes); Can't go beyond 80 char. Please follow code guidelines. > + } else { > + hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211, > HOSTAPD_LEVEL_DEBUG, "deauthenticated"); > + } > + > mlme_deauthenticate_indication( > hapd, sta, le_to_host16(mgmt->u.deauth.reason_code)); > sta->acct_terminate_cause = RADIUS_ACCT_TERMINATE_CAUSE_USER_REQUEST; >
diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c index 51c8d28..d9ec8b2 100644 --- a/src/ap/ieee802_11.c +++ b/src/ap/ieee802_11.c @@ -1351,6 +1351,8 @@ static void handle_deauth(struct hostapd_data *hapd, const struct ieee80211_mgmt *mgmt, size_t len) { struct sta_info *sta; + struct hostap_sta_driver_data data; + struct os_time now; if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.deauth)) { wpa_msg(hapd->msg_ctx, MSG_DEBUG, "handle_deauth - too short " @@ -1374,8 +1376,18 @@ static void handle_deauth(struct hostapd_data *hapd, sta->flags &= ~(WLAN_STA_AUTH | WLAN_STA_ASSOC | WLAN_STA_ASSOC_REQ_OK); wpa_auth_sm_event(sta->wpa_sm, WPA_DEAUTH); - hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211, + + if (hostapd_drv_read_sta_data(hapd, &data, sta->addr) == 0) { + os_get_time(&now); + hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211, + HOSTAPD_LEVEL_INFO, + "deauthenticated. Stats: session=%08X-%08X; duration=%ld; rx_pkt=%lu; tx_pkt=%lu; rx_byte=%lu; tx_byte=%lu; (mind a possible counter wrap)", + sta->acct_session_id_hi, sta->acct_session_id_lo, (now.sec - sta->acct_session_start), data.rx_packets, data.tx_packets, data.rx_bytes, data.tx_bytes); + } else { + hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211, HOSTAPD_LEVEL_DEBUG, "deauthenticated"); + } + mlme_deauthenticate_indication( hapd, sta, le_to_host16(mgmt->u.deauth.reason_code)); sta->acct_terminate_cause = RADIUS_ACCT_TERMINATE_CAUSE_USER_REQUEST;