Przeglądaj źródła

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

Tatsuhiro Tsujikawa 14 lat temu
rodzic
commit
1ea01e84b2
1 zmienionych plików z 4 dodań i 2 usunięć
  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();
 }