Ported remaining netns.sh
- Ported remaining netns.sh tests - Begin work on generic implementation of bind interface
This commit is contained in:
@@ -6,6 +6,41 @@ import (
|
||||
"net"
|
||||
)
|
||||
|
||||
/* This code is meant to be a temporary solution
|
||||
* on platforms for which the sticky socket / source caching behavior
|
||||
* has not yet been implemented.
|
||||
*
|
||||
* See conn_linux.go for an implementation on the linux platform.
|
||||
*/
|
||||
|
||||
type Endpoint *net.UDPAddr
|
||||
|
||||
type NativeBind *net.UDPConn
|
||||
|
||||
func CreateUDPBind(port uint16) (UDPBind, uint16, error) {
|
||||
|
||||
// listen
|
||||
|
||||
addr := UDPAddr{
|
||||
Port: int(port),
|
||||
}
|
||||
conn, err := net.ListenUDP("udp", &addr)
|
||||
if err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
// retrieve port
|
||||
|
||||
laddr := conn.LocalAddr()
|
||||
uaddr, _ = net.ResolveUDPAddr(
|
||||
laddr.Network(),
|
||||
laddr.String(),
|
||||
)
|
||||
return uaddr.Port
|
||||
}
|
||||
|
||||
func (_ Endpoint) ClearSrc() {}
|
||||
|
||||
func SetMark(conn *net.UDPConn, value uint32) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user