sockopt_linux_test.go 675 B

123456789101112131415161718192021222324252627282930
  1. // +build linux
  2. package tcp_test
  3. import (
  4. "context"
  5. "strings"
  6. "testing"
  7. "v2ray.com/core/testing/servers/tcp"
  8. "v2ray.com/core/transport/internet"
  9. . "v2ray.com/core/transport/internet/tcp"
  10. . "v2ray.com/ext/assert"
  11. )
  12. func TestGetOriginalDestination(t *testing.T) {
  13. assert := With(t)
  14. tcpServer := tcp.Server{}
  15. dest, err := tcpServer.Start()
  16. assert(err, IsNil)
  17. defer tcpServer.Close()
  18. conn, err := Dial(context.Background(), dest, internet.ToMemoryStreamConfig(nil))
  19. assert(err, IsNil)
  20. defer conn.Close()
  21. originalDest, err := GetOriginalDestination(conn)
  22. assert(dest == originalDest || strings.Contains(err.Error(), "failed to call getsockopt"), IsTrue)
  23. }