diff --git a/src/core/net/mdns.cpp b/src/core/net/mdns.cpp index 4f2e858be..e5973072b 100644 --- a/src/core/net/mdns.cpp +++ b/src/core/net/mdns.cpp @@ -1566,7 +1566,7 @@ void Core::LocalHost::HandleAddressEvent(const Ip6::Address &aAddress, bool aAdd VerifyOrExit(Get().mIsEnabled); VerifyOrExit(aInfraIfIndex == Get().mInfraIfIndex); - LogInfo("Host address %s event: %s", aAddress.ToString().AsCString(), aAdded ? "added" : "removed"); + LogDebg("Host address %s event: %s", aAddress.ToString().AsCString(), aAdded ? "add" : "remove"); addrEvent = AddrEvent::Allocate(aAddress, aAdded); OT_ASSERT(addrEvent != nullptr); @@ -1601,7 +1601,7 @@ void Core::LocalHost::HandleAddressRemoveAll(uint32_t aInfraIfIndex) mAddrEvents.Clear(); mEventTimer.Stop(); - LogInfo("Host address event: remove all"); + LogDebg("Host address event: remove all"); for (const Ip6::Address &address : mIp4Addresses) { @@ -1645,6 +1645,10 @@ void Core::LocalHost::HandleEventTimer(void) { SuccessOrAssert(addresses.PushBack(address)); } + else + { + LogAddressChange(/* aAdded */ false, addrType, address); + } } // Next, add any new addresses for which we got an "added" @@ -1660,6 +1664,7 @@ void Core::LocalHost::HandleEventTimer(void) if (addrEvent.mAdded && !addresses.Contains(addrEvent.mAddress)) { SuccessOrAssert(addresses.PushBack(addrEvent.mAddress)); + LogAddressChange(/* aAdded */ true, addrType, addrEvent.mAddress); } } } @@ -1670,6 +1675,23 @@ exit: mAddrEvents.Clear(); } +#if OT_SHOULD_LOG_AT(OT_LOG_LEVEL_INFO) +void Core::LocalHost::LogAddressChange(bool aAdded, AddrType aAddrType, const Ip6::Address &aAddress) const +{ + Ip4::Address ip4Address; + + if (aAddrType == kIp4AddrType) + { + SuccessOrAssert(ip4Address.ExtractFromIp4MappedIp6Address(aAddress)); + } + + LogInfo("%s host address %s", aAdded ? "Adding" : "Removing", + aAddrType == kIp4AddrType ? ip4Address.ToString().AsCString() : aAddress.ToString().AsCString()); +} +#else +void Core::LocalHost::LogAddressChange(bool, AddrType, const Ip6::Address &) const {} +#endif + //---------------------------------------------------------------------------------------------------------------------- // Core::LocalHost::AddrEvent diff --git a/src/core/net/mdns.hpp b/src/core/net/mdns.hpp index 13d5eaf88..def39fa30 100644 --- a/src/core/net/mdns.hpp +++ b/src/core/net/mdns.hpp @@ -1182,6 +1182,8 @@ private: bool mAdded; }; + void LogAddressChange(bool aAdded, AddrType aAddrType, const Ip6::Address &aAddress) const; + using EventTimer = TimerMilliIn; Heap::String mName;