From 8280d486f0078daf4739fa928f1a4a14926a44d3 Mon Sep 17 00:00:00 2001 From: Cecille Freeman Date: Fri, 26 Nov 2021 21:44:30 -0500 Subject: [PATCH 1/3] 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 | 3 ++- 2 files changed, 3 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..3381fa2ce2947f 100644 --- a/src/controller/SetUpCodePairer.cpp +++ b/src/controller/SetUpCodePairer.cpp @@ -64,7 +64,8 @@ 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 ? static_cast(discriminator >> 8) : discriminator, isShort))) { isRunning = true; } From 90ca7bff47f10089623301974728b9ecc7e53a19 Mon Sep 17 00:00:00 2001 From: Justin Wood Date: Mon, 29 Nov 2021 19:28:48 -0800 Subject: [PATCH 2/3] Update src/controller/SetUpCodePairer.cpp Co-authored-by: Tennessee Carmel-Veilleux --- src/controller/SetUpCodePairer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controller/SetUpCodePairer.cpp b/src/controller/SetUpCodePairer.cpp index 3381fa2ce2947f..6763e7aa946075 100644 --- a/src/controller/SetUpCodePairer.cpp +++ b/src/controller/SetUpCodePairer.cpp @@ -65,7 +65,7 @@ CHIP_ERROR SetUpCodePairer::Connect(RendezvousInformationFlag rendezvousInformat if (searchOverAll || rendezvousInformation == RendezvousInformationFlag::kOnNetwork) { if (CHIP_NO_ERROR == - (err = StartDiscoverOverIP(isShort ? static_cast(discriminator >> 8) : discriminator, isShort))) + (err = StartDiscoverOverIP(isShort ? static_cast((discriminator >> 8) & 0x0F) : discriminator, isShort))) { isRunning = true; } From 9f72debc86496a8ce92c873c668c939dcd641acb Mon Sep 17 00:00:00 2001 From: Justin Wood Date: Mon, 29 Nov 2021 19:28:57 -0800 Subject: [PATCH 3/3] Update src/app/server/Dnssd.cpp Co-authored-by: Tennessee Carmel-Veilleux --- src/app/server/Dnssd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/server/Dnssd.cpp b/src/app/server/Dnssd.cpp index 07907002762e64..f4faaa79536840 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 >> 8) & 0xFF)).SetLongDiscriminator(value); + advertiseParameters.SetShortDiscriminator(static_cast((value >> 8) & 0x0F)).SetLongDiscriminator(value); if (DeviceLayer::ConfigurationMgr().IsCommissionableDeviceTypeEnabled() && DeviceLayer::ConfigurationMgr().GetDeviceTypeId(value) == CHIP_NO_ERROR)