[cli] avoid div-by-zero in HandlePingStatistics() (#6394)

This commit is contained in:
Jonathan Hui
2021-04-02 08:09:28 -07:00
committed by GitHub
parent f889437dc6
commit b9ad0f9391
+4 -1
View File
@@ -3163,18 +3163,21 @@ void Interpreter::HandlePingStatistics(const otPingSenderStatistics *aStatistics
void Interpreter::HandlePingStatistics(const otPingSenderStatistics *aStatistics)
{
OutputFormat("%u packets transmitted, %u packets received.", aStatistics->mSentCount, aStatistics->mReceivedCount);
if (!aStatistics->mIsMulticast)
if ((aStatistics->mSentCount != 0) && !aStatistics->mIsMulticast)
{
uint32_t packetLossRate =
1000 * (aStatistics->mSentCount - aStatistics->mReceivedCount) / aStatistics->mSentCount;
OutputFormat(" Packet loss = %u.%u%%.", packetLossRate / 10, packetLossRate % 10);
}
if (aStatistics->mReceivedCount != 0)
{
uint32_t avgRoundTripTime = 1000 * aStatistics->mTotalRoundTripTime / aStatistics->mReceivedCount;
OutputFormat(" Round-trip min/avg/max = %u/%u.%u/%u ms.", aStatistics->mMinRoundTripTime,
avgRoundTripTime / 1000, avgRoundTripTime % 1000, aStatistics->mMaxRoundTripTime);
}
OutputLine("");
}