@@ -17,7 +17,7 @@ func pingOneIP(destination string, destinationPort uint16, config *Config, recor
1717 record .IP += fmt .Sprintf (":%d" , destinationPort )
1818 }
1919 successTimes := 0
20- var latencies []float64
20+ var latencies []int64
2121 for i := 0 ; i < config .Ping .Count ; i += 1 {
2222 var err error
2323 // startTime for calculating the latency/RTT
@@ -32,7 +32,7 @@ func pingOneIP(destination string, destinationPort uint16, config *Config, recor
3232 err = pingUdp (destination , destinationPort , config .Ping .Timeout )
3333 }
3434 //store the time elapsed before processing potential errors
35- latency := time .Since (startTime ).Seconds () * 1000
35+ latency := time .Since (startTime ).Milliseconds ()
3636
3737 // evaluate potential ping failures
3838 if err != nil {
@@ -52,19 +52,20 @@ func pingOneIP(destination string, destinationPort uint16, config *Config, recor
5252 // For udp, a timeout indicates that the port *maybe* open.
5353 if config .Ping .Protocol == "udp" {
5454 successTimes += 1
55+ latencies = append (latencies , latency )
5556 }
5657 default :
5758 successTimes += 1
59+ latencies = append (latencies , latency )
5860 }
59- latencies = append (latencies , latency )
6061 // sleep 20 milliseconds between pings to prevent floods
6162 time .Sleep (100 * time .Millisecond )
6263 }
63- sum := 0.0
64+ var sum int64
6465 for i := 0 ; i < len (latencies ); i ++ {
6566 sum += latencies [i ]
6667 }
67- record .PingRTT = math .Round (sum / float64 (len (latencies )))
68+ record .PingRTT = math .Round (float64 ( sum ) / float64 (len (latencies )))
6869 success := false
6970 if (config .Ping .all && successTimes == config .Ping .Count ) || (! config .Ping .all && successTimes > 0 ) {
7071 success = true
@@ -75,31 +76,31 @@ func pingOneIP(destination string, destinationPort uint16, config *Config, recor
7576func reqOneIP (destination string , destinationPort uint16 , config * Config , record * ScanRecord ) bool {
7677 slog .Debug ("Start Ping:" , "IP" , destination )
7778 successTimes := 0
78- var latencies []float64
79+ var latencies []int64
7980 for i := 0 ; i < config .HTTP .Count ; i += 1 {
8081 var err error
8182 // startTime for calculating the latency/RTT
8283 startTime := time .Now ()
8384
8485 err = reqHEAD (destination , destinationPort , config )
8586 //store the time elapsed before processing potential errors
86- latency := time .Since (startTime ).Seconds () * 1000
87+ latency := time .Since (startTime ).Milliseconds ()
8788
8889 // evaluate potential ping failures
8990 if err != nil {
9091 latency = 9999999
9192 } else {
9293 successTimes += 1
94+ latencies = append (latencies , latency )
9395 }
94- latencies = append (latencies , latency )
9596 // sleep 20 milliseconds between request to prevent floods
9697 time .Sleep (100 * time .Millisecond )
9798 }
98- sum := 0.0
99+ var sum int64
99100 for i := 0 ; i < len (latencies ); i ++ {
100101 sum += latencies [i ]
101102 }
102- record .HttpRTT = math .Round (sum / float64 (len (latencies )))
103+ record .HttpRTT = math .Round (float64 ( sum ) / float64 (len (latencies )))
103104 success := false
104105 if (config .HTTP .all && successTimes == config .HTTP .Count ) || (! config .HTTP .all && successTimes > 0 ) {
105106 success = true
0 commit comments