mirror of
https://github.com/cloudflare/cloudflared.git
synced 2025-07-27 20:39:57 +00:00
TUN-8158: Add logging to confirm when ICMP reply is returned to the edge
This commit is contained in:

committed by
Chung-Ting Huang

parent
e5ae80ab86
commit
e653741885
@@ -8,6 +8,7 @@ import (
|
||||
"fmt"
|
||||
"net"
|
||||
"net/netip"
|
||||
"sync/atomic"
|
||||
|
||||
"github.com/google/gopacket/layers"
|
||||
"github.com/rs/zerolog"
|
||||
@@ -46,6 +47,7 @@ type flow3Tuple struct {
|
||||
type icmpEchoFlow struct {
|
||||
*packet.ActivityTracker
|
||||
closeCallback func() error
|
||||
closed *atomic.Bool
|
||||
src netip.Addr
|
||||
originConn *icmp.PacketConn
|
||||
responder *packetResponder
|
||||
@@ -59,6 +61,7 @@ func newICMPEchoFlow(src netip.Addr, closeCallback func() error, originConn *icm
|
||||
return &icmpEchoFlow{
|
||||
ActivityTracker: packet.NewActivityTracker(),
|
||||
closeCallback: closeCallback,
|
||||
closed: &atomic.Bool{},
|
||||
src: src,
|
||||
originConn: originConn,
|
||||
responder: responder,
|
||||
@@ -86,9 +89,14 @@ func (ief *icmpEchoFlow) Equal(other packet.Funnel) bool {
|
||||
}
|
||||
|
||||
func (ief *icmpEchoFlow) Close() error {
|
||||
ief.closed.Store(true)
|
||||
return ief.closeCallback()
|
||||
}
|
||||
|
||||
func (ief *icmpEchoFlow) IsClosed() bool {
|
||||
return ief.closed.Load()
|
||||
}
|
||||
|
||||
// sendToDst rewrites the echo ID to the one assigned to this flow
|
||||
func (ief *icmpEchoFlow) sendToDst(dst netip.Addr, msg *icmp.Message) error {
|
||||
ief.UpdateLastActive()
|
||||
|
Reference in New Issue
Block a user