Fix incorrect advertisement after RemoveFabric. (#15890)
We ended up advertising ourselves as commissionable even though we
weren't.
Remove the guessing about what we should advertise and add an explicit
API for the DNS-SD server to be able to ask what commissioning mode we
should be in if it's not told a specific mode.
Removed some StartServer() calls in places where we did manual
advertising right before or after opening a comissioning window (which
already resets advertising).
Fixes https://github.com/project-chip/connectedhomeip/issues/15875
diff --git a/src/app/server/Server.cpp b/src/app/server/Server.cpp
index a898bcc..da6d876 100644
--- a/src/app/server/Server.cpp
+++ b/src/app/server/Server.cpp
@@ -140,6 +140,7 @@
SuccessOrExit(err);
app::DnssdServer::Instance().SetFabricTable(&mFabrics);
+ app::DnssdServer::Instance().SetCommissioningModeProvider(&mCommissioningWindowManager);
// Group data provider must be initialized after mDeviceStorage
err = mGroupsProvider.Init();
@@ -334,6 +335,7 @@
void Server::Shutdown()
{
+ app::DnssdServer::Instance().SetCommissioningModeProvider(nullptr);
chip::Dnssd::ServiceAdvertiser::Instance().Shutdown();
chip::app::InteractionModelEngine::GetInstance()->Shutdown();
CHIP_ERROR err = mExchangeMgr.Shutdown();