mirror of
https://github.com/tailscale/tailscale.git
synced 2025-02-28 03:07: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) {
|
if neterror.PacketWasTruncated(err) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
//_, err := ruc.ReadBatch(batch.msgs[:len(buffs)], MSG_ERRQUE) rcv message ip recv here
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,3 +47,35 @@ func (c *Conn) getDontFragment(network string) (bool, error) {
|
|||||||
}
|
}
|
||||||
return false, err
|
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()
|
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