Преглед на файлове

SplitHostPort before connecting to the remote.

This, way, we dont have to cleanup the tcp connection if SplitHostPort fails.
Julien Laffaye преди 11 години
родител
ревизия
e987451f99
променени са 1 файла, в които са добавени 5 реда и са изтрити 5 реда
  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,