Opened 16 years ago

Last modified 10 years ago

#3455 closed Bug report

Passive mode through proxy fails under some conditions

Reported by: jjkd Owned by:
Priority: normal Component: Other
Keywords: Cc: jjkd, Tim Kosse
Component version: Operating system type:
Operating system version:

Description

FileZilla 3.0.8.1, Windows XP Pro SP2.

When using a FTP proxy with USER@HOST configuration that only supports passive transfers, uploads fail with socket and timeout errors. It appears that the external IP address of the proxy server is being used in the port command, as opposed to the IP address of the local client. In these log examples, 129.188.33.199 is the public IP of the FTP proxy server, and 10.2.195.119 is the local IP of the client. This previously worked with 2.2.32 (log provided following the 3.0.8.1 log). I think I have both versions configured in an equivalent way.

Log from 3.0.8.1, unsuccessful transfer:

Response: 230-
Response: 230-Type 'user username@site' to connect to a remote destination
Response: 230 Or type 'quote help' for a list of available proxy commands and their syntaxes
Trace: CFtpControlSocket::SendNextCommand()
Command: USER cnst08-adm@…
Trace: CFtpControlSocket::OnReceive()
Trace: CFtpControlSocket::OnReceive()
Response: 331-(----GATEWAY CONNECTED TO tt12.motolms.com----)
Response: 331-(220 41523-testing2 Microsoft FTP Service (Version 5.0).)
Response: 331 Password required for cnst08-adm.
Trace: CFtpControlSocket::SendNextCommand()
Command: PASS *
Trace: CFtpControlSocket::OnReceive()
Response: 230 User cnst08-adm logged in.
Status: Connected
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFtpControlSocket::FileTransfer()
Status: Starting upload of D:\Docent\Intensive\vbulletin\vbulletin.sql
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::ChangeDirSend()
Command: CWD /Upload/test/
Trace: CFtpControlSocket::OnReceive()
Response: 250 CWD command successful.
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::ChangeDirSend()
Command: PWD
Trace: CFtpControlSocket::OnReceive()
Response: 257 "/Upload/test" is current directory.
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFtpControlSocket::ParseSubcommandResult(0)
Trace: FileTransferSubcommandResult()
Status: Retrieving directory listing...
Trace: ftpcontrolsocket.cpp(1228): List called from other command caller=0p16bbcd8
Trace: CFtpControlSocket::ParseSubcommandResult(0)
Trace: CFtpControlSocket::ListSubcommandResult()
Trace: state = 1
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 1
Command: TYPE I
Trace: CFtpControlSocket::OnReceive()
Response: 200 Type set to I.
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 1
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 2
Command: PASV
Trace: CFtpControlSocket::OnReceive()
Response: 227 Entering Passive Mode (129,188,33,199,190,70)
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 2
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 4
Command: LIST
Trace: CTransferSocket::OnConnect
Trace: CFtpControlSocket::OnReceive()
Response: 150 Opening BINARY mode data connection for /bin/ls.
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 1
Trace: state = 4
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 5
Trace: CTransferSocket::OnReceive(), m_transferMode=0
Listing: 03-28-08 10:16AM <DIR> vbulletin
Trace: CTransferSocket::OnClose
Trace: CTransferSocket::TransferEnd(1)
Trace: CFtpControlSocket::TransferEnd()
Trace: CFtpControlSocket::OnReceive()
Response: 226 Transfer complete.
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 7
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFtpControlSocket::ParseSubcommandResult(0)
Trace: CFtpControlSocket::ListSubcommandResult()
Trace: state = 2
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFtpControlSocket::ParseSubcommandResult(0)
Trace: FileTransferSubcommandResult()
Trace: CFtpControlSocket::SendNextCommand()
Trace: FileTransferSend()
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 1
Command: TYPE A
Trace: CFtpControlSocket::OnReceive()
Response: 200 Type set to A.
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 1
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 2
Command: PASV
Trace: CFtpControlSocket::OnReceive()
Response: 227 Entering Passive Mode (129,188,33,199,190,72)
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 2
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 4
Command: STOR vbulletin.sql
Trace: CTransferSocket::OnConnect
Trace: CTransferSocket::OnClose
Trace: CTransferSocket::TransferEnd(3)
Trace: CFtpControlSocket::TransferEnd()
Trace: CFtpControlSocket::OnReceive()
Response: 150 Opening ASCII mode data connection for vbulletin.sql.
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 1
Trace: state = 6
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 7
Trace: CFtpControlSocket::ResetOperation(10)
Trace: CControlSocket::ResetOperation(10)
Trace: CFtpControlSocket::ResetOperation(10)
Trace: CControlSocket::ResetOperation(10)
Error: Transfer aborted by user

Log from 2.2.32, successful transfer:

Response: 230-
Response: 230-Type 'user username@site' to connect to a remote destination
Response: 230 Or type 'quote help' for a list of available proxy commands and their syntaxes
Command: USER cnst08-ftp@…
Response: 331-(----GATEWAY CONNECTED TO tt12.motolms.com----)
Response: 331-(220 41523-testing2 Microsoft FTP Service (Version 5.0).)
Response: 331 Password required for cnst08-ftp.
Command: PASS *
Response: 230 User cnst08-ftp logged in.
Command: SYST
Response: 215 Windows_NT version 5.0
Command: FEAT
Response: 500 command not understood
Status: Connected
Status: Starting upload of D:\Docent\Intensive\vbulletin\vbulletin.sql
Command: PWD
Response: 257 "/" is current directory.
Command: CWD /Upload/test/vbulletin/
Response: 250 CWD command successful.
Command: PWD
Response: 257 "/Upload/test/vbulletin" is current directory.
Command: TYPE A
Response: 200 Type set to A.
Command: PORT 10,2,195,119,4,249
Response: 200 PORT command successful.
Command: STOR vbulletin.sql
Response: 150 Opening ASCII mode data connection for vbulletin.sql.
Command: TYPE A
Trace: FtpControlSocket.cpp(823): OnReceive(0) OpMode=0 OpState=-1 caller=0x00b12a44
Response: 200 Type set to A.
Command: TYPE A
Trace: FtpControlSocket.cpp(823): OnReceive(0) OpMode=0 OpState=-1 caller=0x00b12a44
Response: 200 Type set to A.
Response: 226 Transfer complete.
Status: Upload successful
Trace: FtpControlSocket.cpp(1213): List(FALSE,0,"/Upload/test/vbulletin/","",9) OpMode=0 OpState=-1 caller=0x00b12a44

Change History (2)

comment:1 by Tim Kosse, 16 years ago

The logs do not show any error.

Note: See TracTickets for help on using tickets.