[Darwin] Call ResetSharedConnection and not StartSharedConnection in src/platform/Darwin/DnssdHostNameRegistrar.cpp in order to properly unregister / register interfaces addresses (#22810)
diff --git a/src/platform/Darwin/DnssdHostNameRegistrar.cpp b/src/platform/Darwin/DnssdHostNameRegistrar.cpp
index a936521..a241579 100644
--- a/src/platform/Darwin/DnssdHostNameRegistrar.cpp
+++ b/src/platform/Darwin/DnssdHostNameRegistrar.cpp
@@ -272,7 +272,7 @@
VerifyOrReturnError(!IsLocalOnly(), CHIP_NO_ERROR);
return StartMonitorInterfaces(^(InetInterfacesVector inetInterfaces, Inet6InterfacesVector inet6Interfaces) {
- ReturnOnFailure(StartSharedConnection());
+ ReturnOnFailure(ResetSharedConnection());
RegisterInterfaces(inetInterfaces, kDNSServiceType_A);
RegisterInterfaces(inet6Interfaces, kDNSServiceType_AAAA);
});
@@ -355,6 +355,8 @@
CHIP_ERROR HostNameRegistrar::StartSharedConnection()
{
+ VerifyOrReturnError(mServiceRef == nullptr, CHIP_ERROR_INCORRECT_STATE);
+
auto err = DNSServiceCreateConnection(&mServiceRef);
VerifyOrReturnValue(kDNSServiceErr_NoError == err, Error::ToChipError(err));