From d87cd6a64c8cfb2e32d8d077bfc52ecf2792239e Mon Sep 17 00:00:00 2001 From: Handa Wang Date: Tue, 18 Feb 2025 09:44:14 +0000 Subject: [PATCH] save --- src/mdns/mdns_avahi.cpp | 8 +++++++- src/mdns/mdns_mdnssd.cpp | 5 +++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/mdns/mdns_avahi.cpp b/src/mdns/mdns_avahi.cpp index 2d9719d6a5d..22556f6b8a5 100644 --- a/src/mdns/mdns_avahi.cpp +++ b/src/mdns/mdns_avahi.cpp @@ -519,6 +519,11 @@ bool PublisherAvahi::IsStarted(void) const void PublisherAvahi::Stop(void) { + VerifyOrExit(mState == State::kReady); + + mState = State::kIdle; + mStateCallback(mState); + mServiceRegistrations.clear(); mHostRegistrations.clear(); @@ -531,7 +536,8 @@ void PublisherAvahi::Stop(void) mClient = nullptr; } - mState = Mdns::Publisher::State::kIdle; +exit: + return; } void PublisherAvahi::HandleClientState(AvahiClient *aClient, AvahiClientState aState, void *aContext) diff --git a/src/mdns/mdns_mdnssd.cpp b/src/mdns/mdns_mdnssd.cpp index 22c13b2282e..a5872185a78 100644 --- a/src/mdns/mdns_mdnssd.cpp +++ b/src/mdns/mdns_mdnssd.cpp @@ -241,6 +241,9 @@ void PublisherMDnsSd::Stop(StopMode aStopMode) { VerifyOrExit(mState == State::kReady); + mState = State::kIdle; + mStateCallback(mState); + // If we get a `kDNSServiceErr_ServiceNotRunning` and need to // restart the `Publisher`, we should immediately de-allocate // all `ServiceRef`. Otherwise, we first clear the `Registrations` @@ -265,8 +268,6 @@ void PublisherMDnsSd::Stop(StopMode aStopMode) mSubscribedServices.clear(); mSubscribedHosts.clear(); - mState = State::kIdle; - exit: return; }