summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Habets <thomas@habets.pp.se>2009-11-05 13:42:41 +0100
committerThomas Habets <thomas@habets.pp.se>2009-11-05 13:42:41 +0100
commit02822d45083dfa1678e8b818acd1e321a95370e6 (patch)
tree1a54093d144d06eef25c7c2146938207e8a51631
parent767e5c4b8a0dc19503b2582e5be5331a48f54216 (diff)
downloadarping-02822d45083dfa1678e8b818acd1e321a95370e6.tar.gz
Never show negative percentages
-rw-r--r--src/arping.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/arping.c b/src/arping.c
index 578147b..cfb0578 100644
--- a/src/arping.c
+++ b/src/arping.c
@@ -1336,10 +1336,16 @@ int main(int argc, char **argv)
printf("\t%3.0f%% packet loss\n",
100.0 - 100.0 * (float)(numrecvd)/(float)numsent);
} else if (display == NORMAL) {
- printf("\n--- %s statistics ---\n"
- "%d packets transmitted, %d packets received, %3.0f%% "
- "unanswered\n",target,numsent,numrecvd,
- 100.0 - 100.0 * (float)(numrecvd)/(float)numsent);
+ float succ;
+ succ = 100.0 - 100.0 * (float)(numrecvd)/(float)numsent;
+ printf("\n--- %s statistics ---\n"
+ "%d packets transmitted, "
+ "%d packets received, "
+ "%3.0f%% "
+ "unanswered (%d extra)\n",
+ target,numsent,numrecvd,
+ (succ < 0.0) ? 0.0 : succ,
+ (succ < 0.0) ? (numrecvd - numsent): 0);
}
if (finddup) {