@@ -177,6 +177,12 @@ CHIP_ERROR EspDnssdPublishService(const DnssdService * service, DnssdPublishCall
177
177
}
178
178
}
179
179
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
+
180
186
espError = mdns_service_add (service->mName , service->mType , GetProtocolString (service->mProtocol ), service->mPort , items,
181
187
service->mTextEntrySize );
182
188
// 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
205
211
206
212
CHIP_ERROR EspDnssdRemoveServices ()
207
213
{
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
+ }
211
226
return CHIP_NO_ERROR;
212
227
}
213
228
0 commit comments