Skip to content

Instantly share code, notes, and snippets.

@bgklika
Created April 21, 2021 12:52
Show Gist options
  • Save bgklika/c860ef86aceeced37f217ad8b1a37038 to your computer and use it in GitHub Desktop.
Save bgklika/c860ef86aceeced37f217ad8b1a37038 to your computer and use it in GitHub Desktop.
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