@@ -142,14 +142,39 @@ Status NXPWiFiDriver::AddOrUpdateNetwork(ByteSpan ssid, ByteSpan credentials, Mu
142
142
143
143
Status NXPWiFiDriver::RemoveNetwork (ByteSpan networkId, MutableCharSpan & outDebugText, uint8_t & outNetworkIndex)
144
144
{
145
+ int err_code = 0 ;
146
+
145
147
outDebugText.reduce_size (0 );
146
148
outNetworkIndex = 0 ;
147
149
VerifyOrReturnError (NetworkMatch (mStagingNetwork , networkId), Status::kNetworkIDNotFound );
148
150
149
- // Use empty ssid for representing invalid network
150
- mStagingNetwork .ssidLen = 0 ;
151
- memset (mStagingNetwork .ssid , 0 , DeviceLayer::Internal::kMaxWiFiSSIDLength );
152
- memset (mStagingNetwork .credentials , 0 , DeviceLayer::Internal::kMaxWiFiKeyLength );
151
+ err_code = wlan_remove_network ((char *)networkId.data ());
152
+
153
+ switch (err_code)
154
+ {
155
+ case -WM_E_INVAL:
156
+ ChipLogError (DeviceLayer, " Error: Network not found" );
157
+ break ;
158
+
159
+ case WM_SUCCESS:
160
+ /* Use empty ssid for representing invalid network */
161
+ mStagingNetwork .ssidLen = 0 ;
162
+ memset (mStagingNetwork .ssid , 0 , DeviceLayer::Internal::kMaxWiFiSSIDLength );
163
+ memset (mStagingNetwork .credentials , 0 , DeviceLayer::Internal::kMaxWiFiKeyLength );
164
+ /* Save to persistent memory */
165
+ CommitConfiguration ();
166
+ ChipLogProgress (DeviceLayer, " Successfully removed network" );
167
+ break ;
168
+
169
+ case WLAN_ERROR_STATE:
170
+ ChipLogError (DeviceLayer, " Error: Can't remove network in this state" );
171
+ break ;
172
+
173
+ default :
174
+ ChipLogError (DeviceLayer, " Error: Unable to remove network" );
175
+ break ;
176
+ }
177
+
153
178
return Status::kSuccess ;
154
179
}
155
180
@@ -238,29 +263,6 @@ void NXPWiFiDriver::ConnectNetwork(ByteSpan networkId, ConnectCallback * callbac
238
263
}
239
264
}
240
265
241
- int NXPWiFiDriver::DisconnectNetwork (void )
242
- {
243
- int ret = 0 ;
244
-
245
- if (ConnectivityMgrImpl ().IsWiFiStationConnected ())
246
- {
247
- ChipLogProgress (NetworkProvisioning, " Disconnecting from WiFi network." );
248
-
249
- ret = wlan_disconnect ();
250
-
251
- if (ret != WM_SUCCESS)
252
- {
253
- ChipLogError (NetworkProvisioning, " Failed to disconnect from network with error: %u" , (uint8_t ) ret);
254
- }
255
- }
256
- else
257
- {
258
- ChipLogError (NetworkProvisioning, " Error: WiFi not connected!" );
259
- }
260
-
261
- return ret;
262
- }
263
-
264
266
CHIP_ERROR NXPWiFiDriver::StartScanWiFiNetworks (ByteSpan ssid)
265
267
{
266
268
wlan_scan_params_v2_t wlan_scan_param;
0 commit comments