Files
Archive/pingtunnel/icmp_addr.go
T
2026-02-04 20:03:35 +01:00

28 lines
460 B
Go

package pingtunnel
import "net"
var icmpDatagram bool
func setICMPDatagram(enabled bool) {
icmpDatagram = enabled
}
func icmpDstAddr(ip *net.IPAddr) net.Addr {
if icmpDatagram {
return &net.UDPAddr{IP: ip.IP}
}
return ip
}
func icmpSrcToIPAddr(addr net.Addr) *net.IPAddr {
switch v := addr.(type) {
case *net.IPAddr:
return v
case *net.UDPAddr:
return &net.IPAddr{IP: v.IP, Zone: v.Zone}
default:
return &net.IPAddr{IP: net.IPv4zero}
}
}