diff --git a/src/lib/mdns/Advertiser_ImplMinimalMdns.cpp b/src/lib/mdns/Advertiser_ImplMinimalMdns.cpp index 95705fee9bac85..2675fe2142d4cd 100644 --- a/src/lib/mdns/Advertiser_ImplMinimalMdns.cpp +++ b/src/lib/mdns/Advertiser_ImplMinimalMdns.cpp @@ -273,6 +273,8 @@ CHIP_ERROR AdvertiserMinMdns::Start(chip::Inet::InetLayer * inetLayer, uint16_t { GlobalMinimalMdnsServer::Server().Shutdown(); + Clear(); + ReturnErrorOnFailure(GlobalMinimalMdnsServer::Instance().StartServer(inetLayer, port)); ChipLogProgress(Discovery, "CHIP minimal mDNS started advertising."); @@ -316,7 +318,6 @@ void AdvertiserMinMdns::Clear() CHIP_ERROR AdvertiserMinMdns::Advertise(const OperationalAdvertisingParameters & params) { - Clear(); char nameBuffer[64] = ""; /// need to set server name @@ -380,7 +381,6 @@ CHIP_ERROR AdvertiserMinMdns::Advertise(const OperationalAdvertisingParameters & CHIP_ERROR AdvertiserMinMdns::Advertise(const CommissionAdvertisingParameters & params) { - Clear(); // TODO: need to detect colisions here char nameBuffer[64] = ""; size_t len = snprintf(nameBuffer, sizeof(nameBuffer), ChipLogFormatX64, GetRandU32(), GetRandU32());