device: allow blackholing sockets

This commit is contained in:
Jason A. Donenfeld
2019-10-21 13:29:57 +02:00
parent 47b02c618b
commit ffffbbcc8a
2 changed files with 14 additions and 4 deletions

View File

@@ -21,8 +21,10 @@ import (
*/
type nativeBind struct {
ipv4 *net.UDPConn
ipv6 *net.UDPConn
ipv4 *net.UDPConn
ipv6 *net.UDPConn
blackhole4 bool
blackhole6 bool
}
type NativeEndpoint net.UDPAddr
@@ -159,11 +161,17 @@ func (bind *nativeBind) Send(buff []byte, endpoint Endpoint) error {
if bind.ipv4 == nil {
return syscall.EAFNOSUPPORT
}
if bind.blackhole4 {
return nil
}
_, err = bind.ipv4.WriteToUDP(buff, (*net.UDPAddr)(nend))
} else {
if bind.ipv6 == nil {
return syscall.EAFNOSUPPORT
}
if bind.blackhole6 {
return nil
}
_, err = bind.ipv6.WriteToUDP(buff, (*net.UDPAddr)(nend))
}
return err