diff --git a/src/core/net/ip6.cpp b/src/core/net/ip6.cpp index 9fbb7ba56..b8fd12ab6 100644 --- a/src/core/net/ip6.cpp +++ b/src/core/net/ip6.cpp @@ -884,7 +884,7 @@ void Ip6::UpdateReassemblyList(void) else { otLogNoteIp6("Reassembly timeout."); - IgnoreError(SendIcmpError(*message, IcmpHeader::kTypeTimeExceeded, IcmpHeader::kCodeFragmReasTimeEx)); + SendIcmpError(*message, IcmpHeader::kTypeTimeExceeded, IcmpHeader::kCodeFragmReasTimeEx); IgnoreError(mReassemblyList.Dequeue(*message)); message->Free(); @@ -892,7 +892,7 @@ void Ip6::UpdateReassemblyList(void) } } -otError Ip6::SendIcmpError(Message &aMessage, IcmpHeader::Type aIcmpType, IcmpHeader::Code aIcmpCode) +void Ip6::SendIcmpError(Message &aMessage, IcmpHeader::Type aIcmpType, IcmpHeader::Code aIcmpCode) { otError error = OT_ERROR_NONE; Header header; @@ -905,10 +905,14 @@ otError Ip6::SendIcmpError(Message &aMessage, IcmpHeader::Type aIcmpType, IcmpHe messageInfo.SetHopLimit(header.GetHopLimit()); messageInfo.SetLinkInfo(NULL); - SuccessOrExit(error = mIcmp.SendError(aIcmpType, aIcmpCode, messageInfo, aMessage)); + error = mIcmp.SendError(aIcmpType, aIcmpCode, messageInfo, aMessage); exit: - return error; + + if (error != OT_ERROR_NONE) + { + otLogWarnIp6("Failed to send ICMP error: %s", otThreadErrorToString(error)); + } } #else diff --git a/src/core/net/ip6.hpp b/src/core/net/ip6.hpp index 05d7aeaee..701ece102 100644 --- a/src/core/net/ip6.hpp +++ b/src/core/net/ip6.hpp @@ -363,7 +363,7 @@ private: void CleanupFragmentationBuffer(void); void HandleUpdateTimer(void); void UpdateReassemblyList(void); - otError SendIcmpError(Message &aMessage, IcmpHeader::Type aIcmpType, IcmpHeader::Code aIcmpCode); + void SendIcmpError(Message &aMessage, IcmpHeader::Type aIcmpType, IcmpHeader::Code aIcmpCode); static void HandleTimer(Timer &aTimer); #endif otError AddMplOption(Message &aMessage, Header &aHeader);