ソースを参照

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

Tatsuhiro Tsujikawa 14 年 前
コミット
1ea01e84b2
1 ファイル変更4 行追加2 行削除
  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();
 }