mirror of
https://github.com/tailscale/tailscale.git
synced 2025-02-27 18:57:35 +00:00
wip
This commit is contained in:
parent
331a6d105f
commit
ae5ba8467e
@ -1176,6 +1176,7 @@ func (c *Conn) mkReceiveFunc(ruc *RebindingUDPConn, healthItem *health.ReceiveFu
|
||||
if neterror.PacketWasTruncated(err) {
|
||||
continue
|
||||
}
|
||||
//_, err := ruc.ReadBatch(batch.msgs[:len(buffs)], MSG_ERRQUE) rcv message ip recv here
|
||||
return 0, err
|
||||
}
|
||||
|
||||
|
@ -47,3 +47,35 @@ func (c *Conn) getDontFragment(network string) (bool, error) {
|
||||
}
|
||||
return false, err
|
||||
}
|
||||
|
||||
func (c *Conn) setReceiveICMPErrors(network string, enable bool) error {
|
||||
optArg := 1
|
||||
if enable == false {
|
||||
optArg = 0
|
||||
}
|
||||
var err error
|
||||
rcErr := c.connControl(network, func(fd uintptr) {
|
||||
err = syscall.SetsockoptInt(int(fd), getIPProto(network), syscall.IP_RECVERR, optArg)
|
||||
})
|
||||
|
||||
if rcErr != nil {
|
||||
return rcErr
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *Conn) getReceiveICMPErrors(network string, enable bool) (bool, error) {
|
||||
var v int
|
||||
var err error
|
||||
rcErr := c.connControl(network, func(fd uintptr) {
|
||||
v, err = syscall.GetsockoptInt(int(fd), getIPProto(network), syscall.IP_RECVERR)
|
||||
})
|
||||
|
||||
if rcErr != nil {
|
||||
return false, rcErr
|
||||
}
|
||||
if v == 1 {
|
||||
return true, err
|
||||
}
|
||||
return false, err
|
||||
}
|
||||
|
@ -177,3 +177,12 @@ func (c *RebindingUDPConn) SyscallConn() (syscall.RawConn, error) {
|
||||
}
|
||||
return sc.SyscallConn()
|
||||
}
|
||||
|
||||
/*func (c *RebindingUDPConn) ReadICMPErrors(msgs []ipv6.Message) (int, error) {
|
||||
for {
|
||||
sc, ok := c.pconn.(syscall.Conn)
|
||||
a, err := sc.SyscallConn()
|
||||
err := syscall.SetsockoptInt(sc.SyscallConn(), syscall.SOL_IP, syscall.IP_RECVERR, 1)
|
||||
return n, err
|
||||
}
|
||||
}*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user