Xray-core/transport/internet/system_listener_test.go

34 lines
701 B
Go
Raw Normal View History

2020-11-25 11:01:53 +00:00
package internet_test
import (
"context"
"net"
2023-04-23 11:31:41 +00:00
"syscall"
2020-11-25 11:01:53 +00:00
"testing"
2023-04-23 11:31:41 +00:00
"github.com/sagernet/sing/common/control"
2020-12-04 01:36:16 +00:00
"github.com/xtls/xray-core/common"
"github.com/xtls/xray-core/transport/internet"
2020-11-25 11:01:53 +00:00
)
func TestRegisterListenerController(t *testing.T) {
var gotFd uintptr
2023-04-23 11:31:41 +00:00
common.Must(internet.RegisterListenerController(func(network, address string, conn syscall.RawConn) error {
return control.Raw(conn, func(fd uintptr) error {
gotFd = fd
return nil
})
2020-11-25 11:01:53 +00:00
}))
conn, err := internet.ListenSystemPacket(context.Background(), &net.UDPAddr{
IP: net.IPv4zero,
}, nil)
common.Must(err)
common.Must(conn.Close())
if gotFd == 0 {
t.Error("expected none-zero fd, but actually 0")
}
}