From cc4b6453ef2470dd4c49efb8ba8c3be9757235f0 Mon Sep 17 00:00:00 2001 From: Cecille Freeman Date: Fri, 26 Nov 2021 21:44:30 -0500 Subject: [PATCH] Fix short code on dnssd advertising and chip-tool The short discriminator is the UPPER four bits of the discriminator. --- src/app/server/Dnssd.cpp | 2 +- src/controller/SetUpCodePairer.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/server/Dnssd.cpp b/src/app/server/Dnssd.cpp index a9c1c6b78d006a..07907002762e64 100644 --- a/src/app/server/Dnssd.cpp +++ b/src/app/server/Dnssd.cpp @@ -320,7 +320,7 @@ CHIP_ERROR DnssdServer::Advertise(bool commissionableNode, chip::Dnssd::Commissi ChipLogError(Discovery, "Setup discriminator not known. Using a default."); value = 840; } - advertiseParameters.SetShortDiscriminator(static_cast(value & 0xFF)).SetLongDiscriminator(value); + advertiseParameters.SetShortDiscriminator(static_cast((value >> 8) & 0xFF)).SetLongDiscriminator(value); if (DeviceLayer::ConfigurationMgr().IsCommissionableDeviceTypeEnabled() && DeviceLayer::ConfigurationMgr().GetDeviceTypeId(value) == CHIP_NO_ERROR) diff --git a/src/controller/SetUpCodePairer.cpp b/src/controller/SetUpCodePairer.cpp index f4b7ac3ae6cfba..ab80dccec6073e 100644 --- a/src/controller/SetUpCodePairer.cpp +++ b/src/controller/SetUpCodePairer.cpp @@ -64,7 +64,7 @@ CHIP_ERROR SetUpCodePairer::Connect(RendezvousInformationFlag rendezvousInformat if (searchOverAll || rendezvousInformation == RendezvousInformationFlag::kOnNetwork) { - if (CHIP_NO_ERROR == (err = StartDiscoverOverIP(discriminator, isShort))) + if (CHIP_NO_ERROR == (err = StartDiscoverOverIP(isShort ? discriminator >> 8 : discriminator, isShort))) { isRunning = true; }