summaryrefslogtreecommitdiff
path: root/src/FtpNegotiationCommand.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/FtpNegotiationCommand.cc')
-rw-r--r--src/FtpNegotiationCommand.cc8
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) {