Send an Acct-Multi-Session-Id attribute in Access-Request packets
authorNick Lowe <nick.lowe@lugatech.com>
Mon, 25 Jan 2016 16:49:59 +0000 (16:49 +0000)
committerJouni Malinen <j@w1.fi>
Sat, 6 Feb 2016 15:13:21 +0000 (17:13 +0200)
Previously, this was included only in Accounting-Request packets.

Signed-off-by: Nick Lowe <nick.lowe@lugatech.com>
src/ap/accounting.c
src/ap/ieee802_1x.c

index 87ab5f9..dfb593a 100644 (file)
@@ -52,21 +52,6 @@ static struct radius_msg * accounting_msg(struct hostapd_data *hapd,
 
        if (sta) {
                radius_msg_make_authenticator(msg, (u8 *) sta, sizeof(*sta));
-
-               if ((hapd->conf->wpa & 2) &&
-                   !hapd->conf->disable_pmksa_caching &&
-                   sta->eapol_sm && sta->eapol_sm->acct_multi_session_id) {
-                       os_snprintf(buf, sizeof(buf), "%016lX",
-                                   (long unsigned int)
-                                   sta->eapol_sm->acct_multi_session_id);
-                       if (!radius_msg_add_attr(
-                                   msg, RADIUS_ATTR_ACCT_MULTI_SESSION_ID,
-                                   (u8 *) buf, os_strlen(buf))) {
-                               wpa_printf(MSG_INFO,
-                                          "Could not add Acct-Multi-Session-Id");
-                               goto fail;
-                       }
-               }
        } else {
                radius_msg_make_authenticator(msg, (u8 *) hapd, sizeof(*hapd));
        }
index 0c25f49..037a8f9 100644 (file)
@@ -448,6 +448,21 @@ static int add_common_radius_sta_attr(struct hostapd_data *hapd,
                }
        }
 
+       if ((hapd->conf->wpa & 2) &&
+           !hapd->conf->disable_pmksa_caching &&
+           sta->eapol_sm && sta->eapol_sm->acct_multi_session_id) {
+               os_snprintf(buf, sizeof(buf), "%016lX",
+                           (long unsigned int)
+                           sta->eapol_sm->acct_multi_session_id);
+               if (!radius_msg_add_attr(
+                           msg, RADIUS_ATTR_ACCT_MULTI_SESSION_ID,
+                           (u8 *) buf, os_strlen(buf))) {
+                       wpa_printf(MSG_INFO,
+                                  "Could not add Acct-Multi-Session-Id");
+                       return -1;
+               }
+       }
+
 #ifdef CONFIG_IEEE80211R
        if (hapd->conf->wpa && wpa_key_mgmt_ft(hapd->conf->wpa_key_mgmt) &&
            sta->wpa_sm &&