From 46c548aa5a8b1df4b0a4d450be4dec5e1e5b8452 Mon Sep 17 00:00:00 2001 From: Hampton Moore Date: Fri, 27 Aug 2021 12:12:02 -0400 Subject: [PATCH] Refactor onTimeout to be (int, *ping.InFlightPacket) --- cmd/ping/ping.go | 4 ++-- ping.go | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/cmd/ping/ping.go b/cmd/ping/ping.go index 9536aaa..3fe330e 100644 --- a/cmd/ping/ping.go +++ b/cmd/ping/ping.go @@ -77,8 +77,8 @@ func main() { fmt.Printf("%d bytes from %s: icmp_seq=%d time=%v ttl=%v (DUP!)\n", pkt.Nbytes, pkt.IPAddr, pkt.Seq, pkt.Rtt, pkt.Ttl) } - pinger.OnTimeout = func(pkt *ping.InFlightPacket) { - fmt.Printf("TIMEOUT icmp_seq=%d time=%v\n", pkt.Seq, pkt.DispatchedTime) + pinger.OnTimeout = func(seq int, pkt *ping.InFlightPacket) { + fmt.Printf("TIMEOUT icmp_seq=%d time=%v\n", seq, pkt.DispatchedTime) } pinger.OnFinish = func(stats *ping.Statistics) { fmt.Printf("\n--- %s ping statistics ---\n", stats.Addr) diff --git a/ping.go b/ping.go index 72ef642..cb68ab1 100644 --- a/ping.go +++ b/ping.go @@ -178,7 +178,7 @@ type Pinger struct { OnFinish func(*Statistics) // OnTimeout is called when packet timeout - OnTimeout func(*InFlightPacket) + OnTimeout func(int, *InFlightPacket) // OnDuplicateRecv is called when a packet is received that has already been received. OnDuplicateRecv func(*Packet) @@ -219,7 +219,6 @@ type Pinger struct { type InFlightPacket struct { DispatchedTime time.Time - Seq int } type packet struct { @@ -531,7 +530,7 @@ func (p *Pinger) CheckInFlightPackets() { if pkt.DispatchedTime.Add(p.PacketTimeout).Before(currentTime) { delete(p.InFlightPackets, seq) if p.OnTimeout != nil { - p.OnTimeout(&pkt) + p.OnTimeout(seq, &pkt) } } } @@ -790,7 +789,6 @@ func (p *Pinger) sendICMP(conn packetConn) error { // mark this sequence as in-flight p.InFlightPackets[currentUUID][p.sequence] = InFlightPacket{ DispatchedTime: time.Now(), - Seq: p.sequence, } p.PacketsSent++ p.sequence++