Expose disableEPSV

Fixes #71
This commit is contained in:
Julien Laffaye 2017-02-05 21:02:16 +01:00
parent 4596ddad4d
commit de604c9776
2 changed files with 6 additions and 4 deletions

View File

@ -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")

8
ftp.go
View File

@ -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()