Stop trying to commission devices that are not in commissioning mode. (#13794)
SetUpCodePairer was filtering devices by discriminator, but not
checking for a nonzero CM value, so could end up trying to commission
a device that's not commissionable and miss a device with a colliding
discriminator that is.
diff --git a/src/controller/SetUpCodePairer.cpp b/src/controller/SetUpCodePairer.cpp
index 16e0e04..75d7103 100644
--- a/src/controller/SetUpCodePairer.cpp
+++ b/src/controller/SetUpCodePairer.cpp
@@ -167,6 +167,11 @@
bool SetUpCodePairer::NodeMatchesCurrentFilter(const Dnssd::DiscoveredNodeData & nodeData)
{
+ if (nodeData.commissioningMode == 0)
+ {
+ return false;
+ }
+
switch (currentFilter.type)
{
case Dnssd::DiscoveryFilterType::kShortDiscriminator: