From b9d5e21c0076c6481dae4a0c4c9d93a02d78fc71 Mon Sep 17 00:00:00 2001 From: Tennessee Carmel-Veilleux Date: Fri, 16 Feb 2024 11:21:28 -0500 Subject: [PATCH] Fix NetworkCommissioning post-review from #32156 - Found a regression on Thread scanning. - Changed some ConstraintError to InvalidCommand where more applicable. - Removed an update of cluster state on fail safe expiry. Testing done: - Retested on Wi-Fi - Testing on Thread as well --- .../network-commissioning.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/app/clusters/network-commissioning/network-commissioning.cpp b/src/app/clusters/network-commissioning/network-commissioning.cpp index cb847a13867d5d..4f54dd8a0e5c70 100644 --- a/src/app/clusters/network-commissioning/network-commissioning.cpp +++ b/src/app/clusters/network-commissioning/network-commissioning.cpp @@ -477,7 +477,7 @@ void Instance::HandleScanNetworks(HandlerContext & ctx, const Commands::ScanNetw } if (ssid.size() > DeviceLayer::Internal::kMaxWiFiSSIDLength) { - // This should not happen, it means it's a broken driver. + // Clients should never use too large a SSID. ctx.mCommandHandler.AddStatus(ctx.mRequestPath, Protocols::InteractionModel::Status::ConstraintError); SetLastNetworkingStatusValue(MakeNullable(Status::kUnknownError)); return; @@ -491,10 +491,10 @@ void Instance::HandleScanNetworks(HandlerContext & ctx, const Commands::ScanNetw } else if (mFeatureFlags.Has(Feature::kThreadNetworkInterface)) { - // Not allowed to populate SSID for Thread. - if (!req.ssid.HasValue()) + // SSID present on Thread violates the `[WI]` conformance. + if (req.ssid.HasValue()) { - ctx.mCommandHandler.AddStatus(ctx.mRequestPath, Protocols::InteractionModel::Status::ConstraintError); + ctx.mCommandHandler.AddStatus(ctx.mRequestPath, Protocols::InteractionModel::Status::InvalidCommand); return; } @@ -559,7 +559,7 @@ void Instance::HandleAddOrUpdateWiFiNetwork(HandlerContext & ctx, const Commands return; } #endif // CHIP_DEVICE_CONFIG_ENABLE_WIFI_PDC - ctx.mCommandHandler.AddStatus(ctx.mRequestPath, Protocols::InteractionModel::Status::ConstraintError); + ctx.mCommandHandler.AddStatus(ctx.mRequestPath, Protocols::InteractionModel::Status::InvalidCommand); return; } @@ -1202,11 +1202,8 @@ void Instance::OnFailSafeTimerExpired() mpWirelessDriver->RevertConfiguration(); mAsyncCommandHandle.Release(); - // Reset state on failsafe expiry. + // Mark the network list changed since `mpWirelessDriver->RevertConfiguration()` may have updated it. ReportNetworksListChanged(); - SetLastNetworkId(ByteSpan{}); - SetLastConnectErrorValue(NullNullable); - SetLastNetworkingStatusValue(NullNullable); } CHIP_ERROR Instance::EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, CommandIdCallback callback, void * context)