diff --git a/client_test.go b/client_test.go index 92d4779..a713556 100644 --- a/client_test.go +++ b/client_test.go @@ -33,7 +33,7 @@ func testConn(t *testing.T, disableEPSV bool) { if disableEPSV { delete(c.features, "EPSV") - c.disableEPSV = true + c.DisableEPSV = true } err = c.Login("anonymous", "anonymous") diff --git a/ftp.go b/ftp.go index 5334a44..81c04db 100644 --- a/ftp.go +++ b/ftp.go @@ -24,11 +24,13 @@ const ( // ServerConn represents the connection to a remote FTP server. type ServerConn struct { + // Do not use EPSV mode + DisableEPSV bool + conn *textproto.Conn host string timeout time.Duration features map[string]string - disableEPSV bool mlstSupported bool } @@ -250,13 +252,13 @@ func (c *ServerConn) pasv() (port int, err error) { // getDataConnPort returns a port for a new data connection // it uses the best available method to do so func (c *ServerConn) getDataConnPort() (int, error) { - if !c.disableEPSV { + if !c.DisableEPSV { if port, err := c.epsv(); err == nil { return port, nil } // if there is an error, disable EPSV for the next attempts - c.disableEPSV = true + c.DisableEPSV = true } return c.pasv()