hub_linux_test.go 978 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // +build linux
  2. package udp_test
  3. import (
  4. "syscall"
  5. "testing"
  6. "github.com/v2ray/v2ray-core/common/alloc"
  7. v2net "github.com/v2ray/v2ray-core/common/net"
  8. "github.com/v2ray/v2ray-core/proxy"
  9. "github.com/v2ray/v2ray-core/testing/assert"
  10. "github.com/v2ray/v2ray-core/transport/internet/internal"
  11. . "github.com/v2ray/v2ray-core/transport/internet/udp"
  12. )
  13. func TestHubSocksOption(t *testing.T) {
  14. assert := assert.On(t)
  15. hub, err := ListenUDP(v2net.LocalHostIP, v2net.Port(0), ListenOption{
  16. Callback: func(*alloc.Buffer, *proxy.SessionInfo) {},
  17. ReceiveOriginalDest: true,
  18. })
  19. assert.Error(err).IsNil()
  20. conn := hub.Connection()
  21. fd, err := internal.GetSysFd(conn)
  22. assert.Error(err).IsNil()
  23. v, err := syscall.GetsockoptInt(fd, syscall.SOL_IP, syscall.IP_TRANSPARENT)
  24. assert.Error(err).IsNil()
  25. assert.Int(v).Equals(1)
  26. v, err = syscall.GetsockoptInt(fd, syscall.SOL_IP, syscall.IP_RECVORIGDSTADDR)
  27. assert.Error(err).IsNil()
  28. assert.Int(v).Equals(1)
  29. }