dialer_test.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package hub_test
  2. import (
  3. "net"
  4. "testing"
  5. v2net "github.com/v2ray/v2ray-core/common/net"
  6. v2nettesting "github.com/v2ray/v2ray-core/common/net/testing"
  7. "github.com/v2ray/v2ray-core/testing/assert"
  8. "github.com/v2ray/v2ray-core/testing/servers/tcp"
  9. . "github.com/v2ray/v2ray-core/transport/hub"
  10. )
  11. func TestDialDomain(t *testing.T) {
  12. assert := assert.On(t)
  13. server := &tcp.Server{
  14. Port: v2nettesting.PickPort(),
  15. }
  16. dest, err := server.Start()
  17. assert.Error(err).IsNil()
  18. defer server.Close()
  19. conn, err := Dial(nil, v2net.TCPDestination(v2net.DomainAddress("local.v2ray.com"), dest.Port()))
  20. assert.Error(err).IsNil()
  21. assert.String(conn.RemoteAddr().String()).Equals("127.0.0.1:" + dest.Port().String())
  22. conn.Close()
  23. }
  24. func TestDialWithLocalAddr(t *testing.T) {
  25. assert := assert.On(t)
  26. server := &tcp.Server{
  27. Port: v2nettesting.PickPort(),
  28. }
  29. dest, err := server.Start()
  30. assert.Error(err).IsNil()
  31. defer server.Close()
  32. var localAddr net.IP
  33. addrs, err := net.InterfaceAddrs()
  34. assert.Error(err).IsNil()
  35. for _, addr := range addrs {
  36. str := addr.String()
  37. ip := net.ParseIP(str)
  38. if ip != nil && ip.To4() != nil {
  39. localAddr = ip.To4()
  40. }
  41. }
  42. assert.Pointer(localAddr).IsNotNil()
  43. conn, err := Dial(v2net.IPAddress(localAddr), v2net.TCPDestination(v2net.LocalHostIP, dest.Port()))
  44. assert.Error(err).IsNil()
  45. assert.String(conn.RemoteAddr().String()).Equals("127.0.0.1:" + dest.Port().String())
  46. conn.Close()
  47. }