Explorar el Código

SplitHostPort before connecting to the remote.

This, way, we dont have to cleanup the tcp connection if SplitHostPort fails.
Julien Laffaye hace 10 años
padre
commit
e987451f99
Se han modificado 1 ficheros con 5 adiciones y 5 borrados
  1. 5 5
      ftp.go

+ 5 - 5
ftp.go

@@ -59,18 +59,18 @@ func Dial(addr string) (*ServerConn, error) {
 // It is generally followed by a call to Login() as most FTP commands require
 // an authenticated user.
 func DialTimeout(addr string, timeout time.Duration) (*ServerConn, error) {
-	tconn, err := net.DialTimeout("tcp", addr, timeout)
+	host, _, err := net.SplitHostPort(addr)
 	if err != nil {
 		return nil, err
 	}
 
-	conn := textproto.NewConn(tconn)
-
-	host, _, err := net.SplitHostPort(addr)
+	tconn, err := net.DialTimeout("tcp", addr, timeout)
 	if err != nil {
-		conn.Close()
 		return nil, err
 	}
+
+	conn := textproto.NewConn(tconn)
+
 	c := &ServerConn{
 		conn:     conn,
 		host:     host,