From 1ee36fc944de8ef745875aeb23bd9148400956d1 Mon Sep 17 00:00:00 2001 From: maride Date: Tue, 3 Dec 2019 16:44:17 +0100 Subject: [PATCH] Add more meaningful output to ARP module --- ethernet/arp/arp.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ethernet/arp/arp.go b/ethernet/arp/arp.go index 63d0c3b..09630a0 100644 --- a/ethernet/arp/arp.go +++ b/ethernet/arp/arp.go @@ -65,7 +65,20 @@ func printTrafficStats() { // Iterate over all participants for _, p := range arpStatsList { - tmparr = append(tmparr, fmt.Sprintf("%s asked for %d addresses and answered %d requests", p.macaddr, p.asked, p.answered)) + // produce a meaningful output + if p.asked > 0 { + // device asked at least for one IP + if p.answered > 0 { + // and also answered requests + tmparr = append(tmparr, fmt.Sprintf("%s asked for %d addresses and answered %d requests", p.macaddr, p.asked, p.answered)) + } else { + // only asked, never answered + tmparr = append(tmparr, fmt.Sprintf("%s asked for %d addresses", p.macaddr, p.asked)) + } + } else { + // Answered, but never asked for any addresses + tmparr = append(tmparr, fmt.Sprintf("%s answered %d requests", p.macaddr, p.answered)) + } } // And print it as a tree