Ver código fonte

Use IP address of data connection to connect to the remote server in
passive mode.

Tatsuhiro Tsujikawa 14 anos atrás
pai
commit
1ea01e84b2
1 arquivos alterados com 4 adições e 2 exclusões
  1. 4 2
      src/FtpNegotiationCommand.cc

+ 4 - 2
src/FtpNegotiationCommand.cc

@@ -636,8 +636,10 @@ bool FtpNegotiationCommand::recvPasv() {
     throw DL_ABORT_EX2(fmt(EX_BAD_STATUS, status),
                        error_code::FTP_PROTOCOL_ERROR);
   }
-  dataConnAddr_ = dest;
-
+  std::pair<std::string, uint16_t> peerInfo;
+  getSocket()->getPeerInfo(peerInfo);
+  peerInfo.second = dest.second;;
+  dataConnAddr_ = peerInfo;
   return preparePasvConnect();
 }