conn: unify code in StdNetBind.Send
The sending code is identical for ipv4 and ipv6; select the conn, then use it. Signed-off-by: Josh Bleecher Snyder <josharian@gmail.com>
This commit is contained in:
parent
02e419ed8a
commit
822f5a6d70
|
@ -161,22 +161,21 @@ func (bind *StdNetBind) Send(buff []byte, endpoint Endpoint) error {
|
||||||
if !ok {
|
if !ok {
|
||||||
return ErrWrongEndpointType
|
return ErrWrongEndpointType
|
||||||
}
|
}
|
||||||
|
var conn *net.UDPConn
|
||||||
|
var blackhole bool
|
||||||
if nend.IP.To4() != nil {
|
if nend.IP.To4() != nil {
|
||||||
if bind.ipv4 == nil {
|
blackhole = bind.blackhole4
|
||||||
return syscall.EAFNOSUPPORT
|
conn = bind.ipv4
|
||||||
}
|
|
||||||
if bind.blackhole4 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
_, err = bind.ipv4.WriteToUDP(buff, (*net.UDPAddr)(nend))
|
|
||||||
} else {
|
} else {
|
||||||
if bind.ipv6 == nil {
|
blackhole = bind.blackhole6
|
||||||
return syscall.EAFNOSUPPORT
|
conn = bind.ipv6
|
||||||
}
|
|
||||||
if bind.blackhole6 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
_, err = bind.ipv6.WriteToUDP(buff, (*net.UDPAddr)(nend))
|
|
||||||
}
|
}
|
||||||
|
if blackhole {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if conn == nil {
|
||||||
|
return syscall.EAFNOSUPPORT
|
||||||
|
}
|
||||||
|
_, err = conn.WriteToUDP(buff, (*net.UDPAddr)(nend))
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue