浏览代码

Merge pull request #2670 from calmh/noresolve

Don't unnecessary resolve destination address
Audrius Butkevicius 9 年之前
父节点
当前提交
25b3c09f6a
共有 1 个文件被更改,包括 4 次插入7 次删除
  1. 4 7
      lib/connections/connections_tcp.go

+ 4 - 7
lib/connections/connections_tcp.go

@@ -23,6 +23,7 @@ func init() {
 }
 
 func tcpDialer(uri *url.URL, tlsCfg *tls.Config) (*tls.Conn, error) {
+	// Check that there is a port number in uri.Host, otherwise add one.
 	host, port, err := net.SplitHostPort(uri.Host)
 	if err != nil && strings.HasPrefix(err.Error(), "missing port") {
 		// addr is on the form "1.2.3.4"
@@ -32,13 +33,9 @@ func tcpDialer(uri *url.URL, tlsCfg *tls.Config) (*tls.Conn, error) {
 		uri.Host = net.JoinHostPort(host, "22000")
 	}
 
-	raddr, err := net.ResolveTCPAddr("tcp", uri.Host)
-	if err != nil {
-		l.Debugln(err)
-		return nil, err
-	}
-
-	conn, err := dialer.Dial(raddr.Network(), raddr.String())
+	// Don't try to resolve the address before dialing. The dialer may be a
+	// proxy, and we should let the proxy do the resolving in that case.
+	conn, err := dialer.Dial("tcp", uri.Host)
 	if err != nil {
 		l.Debugln(err)
 		return nil, err