summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CORE/MAC/src/pe/lim/limFT.c8
-rw-r--r--CORE/SME/src/csr/csrApiRoam.c17
2 files changed, 24 insertions, 1 deletions
diff --git a/CORE/MAC/src/pe/lim/limFT.c b/CORE/MAC/src/pe/lim/limFT.c
index cf42bca429a2..7ddfd03bc1a4 100644
--- a/CORE/MAC/src/pe/lim/limFT.c
+++ b/CORE/MAC/src/pe/lim/limFT.c
@@ -336,16 +336,22 @@ void limPerformFTPreAuth(tpAniSirGlobal pMac, eHalStatus status,
tANI_U32 *data, tpPESession psessionEntry)
{
tSirMacAuthFrameBody authFrame;
+ tANI_U32 session_id;
+ eCsrAuthType auth_type;
if (NULL == psessionEntry) {
PELOGE(limLog(pMac, LOGE, FL("psessionEntry is NULL"));)
return;
}
+ session_id = psessionEntry->smeSessionId;
+ auth_type = pMac->roam.roamSession[session_id].connectedProfile.AuthType;
+
if (psessionEntry->is11Rconnection &&
psessionEntry->ftPEContext.pFTPreAuthReq) {
/* Only 11r assoc has FT IEs */
- if (psessionEntry->ftPEContext.pFTPreAuthReq->ft_ies_length == 0) {
+ if ((auth_type != eCSR_AUTH_TYPE_OPEN_SYSTEM) &&
+ (psessionEntry->ftPEContext.pFTPreAuthReq->ft_ies_length == 0)) {
PELOGE(limLog( pMac, LOGE,
"%s: FTIEs for Auth Req Seq 1 is absent",
__func__);)
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index 1e745f675d16..4703b1354921 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -19093,6 +19093,7 @@ void csrRoamFTPreAuthRspProcessor( tHalHandle hHal, tpSirFTPreAuthRsp pFTPreAuth
eCsrAuthType conn_Auth_type;
tANI_U32 sessionId = pFTPreAuthRsp->smeSessionId;
tCsrRoamSession *pSession = CSR_GET_SESSION( pMac, sessionId );
+ tDot11fAuthentication *pAuth = NULL;
if (NULL == pSession)
{
@@ -19200,6 +19201,22 @@ void csrRoamFTPreAuthRspProcessor( tHalHandle hHal, tpSirFTPreAuthRsp pFTPreAuth
pSession->ftSmeContext.reassoc_ft_ies = NULL;
}
+ pAuth = (tDot11fAuthentication *) vos_mem_malloc(sizeof(tDot11fAuthentication));
+ if(pAuth == NULL)
+ return;
+
+ status = dot11fUnpackAuthentication(pMac, pFTPreAuthRsp->ft_ies,
+ pFTPreAuthRsp->ft_ies_length, pAuth);
+ if (DOT11F_FAILED(status))
+ {
+ smsLog( pMac, LOGE, FL("Failed to parse an Authentication frame"));
+ }
+ else if (pAuth->MobilityDomain.present)
+ {
+ pSession->ftSmeContext.addMDIE = TRUE;
+ }
+ vos_mem_free(pAuth);
+
if (!ft_ies_length)
return;