Created
April 21, 2021 12:52
-
-
Save bgklika/c860ef86aceeced37f217ad8b1a37038 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/amazon-freertos/libraries/c_sdk/standard/ble/src/services/wifi_provisioning/iot_ble_wifi_provisioning.c b/src/amazon-freertos/libraries/c_sdk/standard/ble/src/services/wifi_provisioning/iot_ble_wifi_provisioning.c | |
index 9b682d99d..8ad854bec 100644 | |
--- a/src/amazon-freertos/libraries/c_sdk/standard/ble/src/services/wifi_provisioning/iot_ble_wifi_provisioning.c | |
+++ b/src/amazon-freertos/libraries/c_sdk/standard/ble/src/services/wifi_provisioning/iot_ble_wifi_provisioning.c | |
@@ -1215,13 +1215,33 @@ WIFIReturnCode_t _connectNetwork( WIFINetworkProfile_t * pProfile ) | |
networkParams.ucSSIDLength = pProfile->ucSSIDLength; | |
networkParams.xSecurity = pProfile->xSecurity; | |
- if( ( networkParams.xSecurity == eWiFiSecurityWPA2 ) || ( networkParams.xSecurity == eWiFiSecurityWPA ) ) | |
+ switch( networkParams.xSecurity ) | |
{ | |
- memcpy( networkParams.xPassword.xWPA.cPassphrase, pProfile->cPassword, pProfile->ucPasswordLength ); | |
- networkParams.xPassword.xWPA.ucLength = pProfile->ucPasswordLength; | |
+ case eWiFiSecurityOpen: | |
+ /* Nothing to do here */ | |
+ break; | |
+ | |
+ case eWiFiSecurityWPA: | |
+ case eWiFiSecurityWPA2: | |
+ case eWiFiSecurityWPA3: | |
+ memcpy( networkParams.xPassword.xWPA.cPassphrase, pProfile->cPassword, pProfile->ucPasswordLength ); | |
+ networkParams.xPassword.xWPA.ucLength = pProfile->ucPasswordLength; | |
+ break; | |
+ | |
+ case eWiFiSecurityWEP: | |
+ memcpy( networkParams.xPassword.xWEP[0].cKey, pProfile->cPassword, pProfile->ucPasswordLength ); | |
+ networkParams.xPassword.xWEP[0].ucLength = pProfile->ucPasswordLength; | |
+ break; | |
+ | |
+ default: | |
+ ret = eWiFiNotSupported; | |
+ break; | |
} | |
- ret = WIFI_ConnectAP( &networkParams ); | |
+ if( ret != eWiFiNotSupported ) | |
+ { | |
+ ret = WIFI_ConnectAP( &networkParams ); | |
+ } | |
return ret; | |
} | |
diff --git a/src/amazon-freertos/vendors/espressif/boards/esp32/ports/wifi/iot_wifi.c b/src/amazon-freertos/vendors/espressif/boards/esp32/ports/wifi/iot_wifi.c | |
index 98d964e36..2d5350a40 100644 | |
--- a/src/amazon-freertos/vendors/espressif/boards/esp32/ports/wifi/iot_wifi.c | |
+++ b/src/amazon-freertos/vendors/espressif/boards/esp32/ports/wifi/iot_wifi.c | |
@@ -413,6 +413,8 @@ WIFIReturnCode_t WIFI_ConnectAP( const WIFINetworkParams_t * const pxNetworkPara | |
wifi_mode_t xCurMode; | |
esp_err_t ret; | |
WIFIReturnCode_t wifi_ret = eWiFiFailure; | |
+ char * passwordPtr = NULL; | |
+ size_t passwordLen = 0u; | |
if( pxNetworkParams == NULL ) | |
{ | |
@@ -424,12 +426,30 @@ WIFIReturnCode_t WIFI_ConnectAP( const WIFINetworkParams_t * const pxNetworkPara | |
return wifi_ret; | |
} | |
- if( pxNetworkParams->xSecurity == eWiFiSecurityWEP ) | |
+ switch( pxNetworkParams->xSecurity ) | |
{ | |
- return eWiFiNotSupported; | |
+ case eWiFiSecurityOpen: | |
+ /* No actions needed */ | |
+ break; | |
+ | |
+ case eWiFiSecurityWEP: | |
+ passwordPtr = pxNetworkParams->xPassword.xWEP[0].cKey; | |
+ passwordLen = pxNetworkParams->xPassword.xWEP[0].ucLength; | |
+ break; | |
+ | |
+ case eWiFiSecurityWPA: | |
+ case eWiFiSecurityWPA2: | |
+ case eWiFiSecurityWPA3: | |
+ passwordPtr = pxNetworkParams->xPassword.xWPA.cPassphrase; | |
+ passwordLen = pxNetworkParams->xPassword.xWPA.ucLength; | |
+ break; | |
+ | |
+ default: | |
+ return eWiFiNotSupported; | |
+ break; | |
} | |
- if( pxNetworkParams->xSecurity != eWiFiSecurityOpen && !CHECK_VALID_PASSPHRASE_LEN(pxNetworkParams->xPassword.xWPA.ucLength)) | |
+ if( pxNetworkParams->xSecurity != eWiFiSecurityOpen && !CHECK_VALID_PASSPHRASE_LEN(passwordLen)) | |
{ | |
return wifi_ret; | |
} | |
@@ -451,7 +471,7 @@ WIFIReturnCode_t WIFI_ConnectAP( const WIFINetworkParams_t * const pxNetworkPara | |
strlcpy((char *) &wifi_config.sta.ssid, (char *) pxNetworkParams->ucSSID, pxNetworkParams->ucSSIDLength + 1); | |
if (pxNetworkParams->xSecurity != eWiFiSecurityOpen) { | |
- strlcpy((char *) &wifi_config.sta.password, pxNetworkParams->xPassword.xWPA.cPassphrase, pxNetworkParams->xPassword.xWPA.ucLength + 1); | |
+ strlcpy((char *) &wifi_config.sta.password, passwordPtr, passwordLen + 1); | |
} | |
ret = esp_wifi_get_mode( &xCurMode ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment