diff --git a/src/controller/SetUpCodePairer.cpp b/src/controller/SetUpCodePairer.cpp index c66bf419efc3d5..2f13f629a3e680 100644 --- a/src/controller/SetUpCodePairer.cpp +++ b/src/controller/SetUpCodePairer.cpp @@ -190,11 +190,10 @@ CHIP_ERROR SetUpCodePairer::StopConnectOverIP() mWaitingForDiscovery[kIPTransport] = false; mCurrentFilter.type = Dnssd::DiscoveryFilterType::kNone; - mPayloadVendorID = 0; - mPayloadProductID = 0; + mPayloadVendorID = kNotAvailable; + mPayloadProductID = kNotAvailable; mCommissioner->StopCommissionableDiscovery(); - return CHIP_NO_ERROR; } @@ -292,12 +291,10 @@ void SetUpCodePairer::OnBLEDiscoveryError(CHIP_ERROR err) } #endif // CONFIG_NETWORK_LAYER_BLE -namespace { -bool IsPresent(uint16_t vendorOrProductID) +bool SetUpCodePairer::IdIsPresent(uint16_t vendorOrProductID) { - return vendorOrProductID != 0; + return vendorOrProductID != kNotAvailable; } -} // anonymous namespace bool SetUpCodePairer::NodeMatchesCurrentFilter(const Dnssd::DiscoveredNodeData & nodeData) const { @@ -307,14 +304,14 @@ bool SetUpCodePairer::NodeMatchesCurrentFilter(const Dnssd::DiscoveredNodeData & } // The advertisement may not include a vendor id. - if (IsPresent(mPayloadVendorID) && IsPresent(nodeData.commissionData.vendorId) && + if (IdIsPresent(mPayloadVendorID) && IdIsPresent(nodeData.commissionData.vendorId) && mPayloadVendorID != nodeData.commissionData.vendorId) { return false; } // The advertisement may not include a product id. - if (IsPresent(mPayloadProductID) && IsPresent(nodeData.commissionData.productId) && + if (IdIsPresent(mPayloadProductID) && IdIsPresent(nodeData.commissionData.productId) && mPayloadProductID != nodeData.commissionData.productId) { return false; diff --git a/src/controller/SetUpCodePairer.h b/src/controller/SetUpCodePairer.h index 9a6dc2e1ff1e31..ed1c6f0c2ad5ac 100644 --- a/src/controller/SetUpCodePairer.h +++ b/src/controller/SetUpCodePairer.h @@ -151,12 +151,15 @@ class DLL_EXPORT SetUpCodePairer : public DevicePairingDelegate #endif // CONFIG_NETWORK_LAYER_BLE bool NodeMatchesCurrentFilter(const Dnssd::DiscoveredNodeData & nodeData) const; + static bool IdIsPresent(uint16_t vendorOrProductID); + Dnssd::DiscoveryFilter mCurrentFilter; // The vendor id and product id from the SetupPayload. They may be 0, which // indicates "not available" (e.g. because the SetupPayload came from a // short manual code). In that case we should not filter on those values. - uint16_t mPayloadVendorID = 0; - uint16_t mPayloadProductID = 0; + static constexpr uint16_t kNotAvailable = 0; + uint16_t mPayloadVendorID = kNotAvailable; + uint16_t mPayloadProductID = kNotAvailable; DeviceCommissioner * mCommissioner = nullptr; System::Layer * mSystemLayer = nullptr;