diff options
Diffstat (limited to 'src/FtpNegotiationCommand.cc')
| -rw-r--r-- | src/FtpNegotiationCommand.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/FtpNegotiationCommand.cc b/src/FtpNegotiationCommand.cc index 67b08f6b..34641e27 100644 --- a/src/FtpNegotiationCommand.cc +++ b/src/FtpNegotiationCommand.cc @@ -57,6 +57,9 @@ bool FtpNegotiationCommand::executeInternal(Segment segment) { bool FtpNegotiationCommand::recvGreeting() { socket->setBlockingMode(); + disableWriteCheckSocket(); + setReadCheckSocket(socket); + int status = ftp->receiveResponse(); if(status == 0) { return false; @@ -66,9 +69,6 @@ bool FtpNegotiationCommand::recvGreeting() { } sequence = SEQ_SEND_USER; - setReadCheckSocket(socket); - disableWriteCheckSocket(); - return true; } @@ -264,7 +264,7 @@ bool FtpNegotiationCommand::recvRetr() { if(status == 0) { return false; } - if(status != 150) { + if(status != 150 && status != 125) { throw new DlRetryEx(EX_BAD_STATUS, status); } if(e->option->get(PREF_FTP_PASV_ENABLED) != V_TRUE) { |
