| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // +build linux
- package udp_test
- import (
- "os"
- "syscall"
- "testing"
- "github.com/v2ray/v2ray-core/common/alloc"
- v2net "github.com/v2ray/v2ray-core/common/net"
- "github.com/v2ray/v2ray-core/proxy"
- "github.com/v2ray/v2ray-core/testing/assert"
- "github.com/v2ray/v2ray-core/transport/internet/internal"
- . "github.com/v2ray/v2ray-core/transport/internet/udp"
- )
- func TestHubSocksOption(t *testing.T) {
- assert := assert.On(t)
- if os.Geteuid() != 0 {
- // This test case requires root permission.
- return
- }
- hub, err := ListenUDP(v2net.LocalHostIP, v2net.Port(0), ListenOption{
- Callback: func(*alloc.Buffer, *proxy.SessionInfo) {},
- ReceiveOriginalDest: true,
- })
- assert.Error(err).IsNil()
- conn := hub.Connection()
- fd, err := internal.GetSysFd(conn)
- assert.Error(err).IsNil()
- v, err := syscall.GetsockoptInt(fd, syscall.SOL_IP, syscall.IP_TRANSPARENT)
- assert.Error(err).IsNil()
- assert.Int(v).Equals(1)
- v, err = syscall.GetsockoptInt(fd, syscall.SOL_IP, syscall.IP_RECVORIGDSTADDR)
- assert.Error(err).IsNil()
- assert.Int(v).Equals(1)
- }
|