Skip to content

Commit 693b82b

Browse files
authored
ESP32: check whether the mdns service exists before deleting it (#35397)
1 parent eaa4d62 commit 693b82b

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

src/platform/ESP32/ESP32DnssdImpl.cpp

+18-3
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,12 @@ CHIP_ERROR EspDnssdPublishService(const DnssdService * service, DnssdPublishCall
177177
}
178178
}
179179

180+
// Remove service before adding it
181+
if (mdns_service_exists(service->mType, GetProtocolString(service->mProtocol), nullptr))
182+
{
183+
mdns_service_remove_for_host(service->mName, service->mType, GetProtocolString(service->mProtocol), nullptr);
184+
}
185+
180186
espError = mdns_service_add(service->mName, service->mType, GetProtocolString(service->mProtocol), service->mPort, items,
181187
service->mTextEntrySize);
182188
// The mdns_service_add will return error if we try to add an existing service
@@ -205,9 +211,18 @@ CHIP_ERROR EspDnssdPublishService(const DnssdService * service, DnssdPublishCall
205211

206212
CHIP_ERROR EspDnssdRemoveServices()
207213
{
208-
mdns_service_remove("_matter", "_tcp");
209-
mdns_service_remove("_matterc", "_udp");
210-
mdns_service_remove("_matterd", "_udp");
214+
if (mdns_service_exists("_matter", "_tcp", nullptr))
215+
{
216+
mdns_service_remove("_matter", "_tcp");
217+
}
218+
if (mdns_service_exists("_matterc", "_udp", nullptr))
219+
{
220+
mdns_service_remove("_matterc", "_udp");
221+
}
222+
if (mdns_service_exists("_matterd", "_udp", nullptr))
223+
{
224+
mdns_service_remove("_matterd", "_udp");
225+
}
211226
return CHIP_NO_ERROR;
212227
}
213228

0 commit comments

Comments
 (0)