Opened 15 years ago

Closed 12 years ago

Last modified 10 years ago

#4912 closed Bug report (rejected)

Failed to retrieve directory listing with Blue Coat FTP service (firewall) - starting from Filezilla version 3.2.4

Reported by: Nico Rans Owned by:
Priority: normal Component: FileZilla Client
Keywords: MLSD directory listing retrieve failed Cc:
Component version: Operating system type: Windows
Operating system version: Windows Xp SP3

Description

I've noticed connection failures in the more recent versions of Filezilla. The error that is shown is 'Failed to retrieve directory listing'.

Not all FTP sites are affected as far as I can see, only sites supporting MLSD are affected.

This issue was seen in 2 corporate networks (both using Blue Coat FTP service). As well Windows computers (Windows XP SP3 tested) as Linux computers (Ubuntu 8.10 tested) are affected.

Please find below some logs of different Filezilla versions. All versions older then version 3.2.4 seem to work fine. Please note for security reasonsm usernames, ipaddresses, filenames , ... have been modified in the log file.

Response with version 3.2.8.1

Status: Using proxy proxyserver.local
Status: Resolving address of proxyserver.local
Status: Connecting to 10.10.10.10:21...
Status: Connection established, waiting for welcome message...
Trace: CFtpControlSocket::OnReceive()
Response: 220 Blue Coat FTP Service
Trace: CFtpControlSocket::SendNextCommand()
Command: USER user@…
Trace: CFtpControlSocket::OnReceive()
Response: 331 User userOK. Password required
Trace: CFtpControlSocket::SendNextCommand()
Command: PASS
Trace: CFtpControlSocket::OnReceive()
Response: 230-User userhas group access to: user
Response: 230 OK. Current restricted directory is /
Trace: CFtpControlSocket::SendNextCommand()
Command: SYST
Trace: CFtpControlSocket::OnReceive()
Response: 215 UNIX Type: L8
Trace: CFtpControlSocket::SendNextCommand()
Command: FEAT
Trace: CFtpControlSocket::OnReceive()
Response: 211-Extensions supported:
Response: EPRT
Response: IDLE
Response: MDTM
Response: SIZE
Response: REST STREAM
Response: MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
Response: MLSD
Response: TVFS
Response: ESTP
Response: PASV
Response: EPSV
Response: SPSV
Response: ESTA
Response: AUTH TLS
Response: PBSZ
Response: PROT
Response: 211 End.
Status: Connected
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFileZillaEnginePrivate::ResetOperation(0)
Status: Retrieving directory listing...
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::ChangeDirSend()
Command: PWD
Trace: CFtpControlSocket::OnReceive()
Response: 257 "/" is your current location
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
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 Command okay.
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 (10,10,10,10,9,109)
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 2
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 4
Command: MLSD
Trace: CTransferSocket::OnConnect
Trace: CTransferSocket::OnReceive(), m_transferMode=0
Trace: CFtpControlSocket::OnReceive()
Response: 425 No data connection
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 4
Trace: state = 4
Trace: CFtpControlSocket::ResetOperation(2)
Trace: CControlSocket::ResetOperation(2)
Trace: CFtpControlSocket::ParseSubcommandResult(2)
Trace: CFtpControlSocket::ListSubcommandResult()
Trace: state = 3
Trace: CFtpControlSocket::ResetOperation(2)
Trace: CControlSocket::ResetOperation(2)
Error: Failed to retrieve directory listing
Trace: CFileZillaEnginePrivate::ResetOperation(2)

Response with version 3.2.7.1

Status: Using proxy proxyserver.local
Status: Resolving address of proxyserver.local
Status: Connecting to 10.10.10.10:21...
Status: Connection established, waiting for welcome message...
Trace: CFtpControlSocket::OnReceive()
Response: 220 Blue Coat FTP Service
Trace: CFtpControlSocket::SendNextCommand()
Command: USER user@…
Trace: CFtpControlSocket::OnReceive()
Response: 331 User userOK. Password required
Trace: CFtpControlSocket::SendNextCommand()
Command: PASS
Trace: CFtpControlSocket::OnReceive()
Response: 230-User userhas group access to: user
Response: 230 OK. Current restricted directory is /
Trace: CFtpControlSocket::SendNextCommand()
Command: SYST
Trace: CFtpControlSocket::OnReceive()
Response: 215 UNIX Type: L8
Trace: CFtpControlSocket::SendNextCommand()
Command: FEAT
Trace: CFtpControlSocket::OnReceive()
Response: 211-Extensions supported:
Response: EPRT
Response: IDLE
Response: MDTM
Response: SIZE
Response: REST STREAM
Response: MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
Response: MLSD
Response: TVFS
Response: ESTP
Response: PASV
Response: EPSV
Response: SPSV
Response: ESTA
Response: AUTH TLS
Response: PBSZ
Response: PROT
Response: 211 End.
Status: Connected
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFileZillaEnginePrivate::ResetOperation(0)
Status: Retrieving directory listing...
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::ChangeDirSend()
Command: PWD
Trace: CFtpControlSocket::OnReceive()
Response: 257 "/" is your current location
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
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 Command okay.
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 (10,10,10,10,143,39)
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 2
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 4
Command: MLSD
Trace: CTransferSocket::OnConnect
Trace: CTransferSocket::OnReceive(), m_transferMode=0
Trace: CFtpControlSocket::OnReceive()
Response: 425 No data connection
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 4
Trace: state = 4
Trace: CFtpControlSocket::ResetOperation(2)
Trace: CControlSocket::ResetOperation(2)
Trace: CFtpControlSocket::ParseSubcommandResult(2)
Trace: CFtpControlSocket::ListSubcommandResult()
Trace: state = 3
Trace: CFtpControlSocket::ResetOperation(2)
Trace: CControlSocket::ResetOperation(2)
Error: Failed to retrieve directory listing
Trace: CFileZillaEnginePrivate::ResetOperation(2)

Response with version 3.2.4

Status: Using proxy proxyserver.local
Status: Resolving address of proxyserver.local
Status: Connecting to 10.10.10.10:21...
Status: Connection established, waiting for welcome message...
Trace: CFtpControlSocket::OnReceive()
Response: 220 Blue Coat FTP Service
Trace: CFtpControlSocket::SendNextCommand()
Command: USER user@…
Trace: CFtpControlSocket::OnReceive()
Response: 331 User userOK. Password required
Trace: CFtpControlSocket::SendNextCommand()
Command: PASS
Trace: CFtpControlSocket::OnReceive()
Response: 230-User userhas group access to: user
Response: 230 OK. Current restricted directory is /
Trace: CFtpControlSocket::SendNextCommand()
Command: SYST
Trace: CFtpControlSocket::OnReceive()
Response: 215 UNIX Type: L8
Trace: CFtpControlSocket::SendNextCommand()
Command: FEAT
Trace: CFtpControlSocket::OnReceive()
Response: 211-Extensions supported:
Response: EPRT
Response: IDLE
Response: MDTM
Response: SIZE
Response: REST STREAM
Response: MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
Response: MLSD
Response: TVFS
Response: ESTP
Response: PASV
Response: EPSV
Response: SPSV
Response: ESTA
Response: AUTH TLS
Response: PBSZ
Response: PROT
Response: 211 End.
Status: Connected
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFileZillaEnginePrivate::ResetOperation(0)
Status: Retrieving directory listing...
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::ChangeDirSend()
Command: PWD
Trace: CFtpControlSocket::OnReceive()
Response: 257 "/" is your current location
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
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 Command okay.
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 (10,10,10,10,176,123)
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 2
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 4
Command: MLSD
Trace: CTransferSocket::OnConnect
Trace: CTransferSocket::OnReceive(), m_transferMode=0
Trace: CFtpControlSocket::OnReceive()
Response: 425 No data connection
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 4
Trace: state = 4
Trace: CFtpControlSocket::ResetOperation(2)
Trace: CControlSocket::ResetOperation(2)
Trace: CFtpControlSocket::ParseSubcommandResult(2)
Trace: CFtpControlSocket::ListSubcommandResult()
Trace: state = 3
Trace: CFtpControlSocket::ResetOperation(2)
Trace: CControlSocket::ResetOperation(2)
Error: Failed to retrieve directory listing
Trace: CFileZillaEnginePrivate::ResetOperation(2)

Response with version 3.2.3.1

Status: Using proxy proxyserver.local
Status: Resolving address of proxyserver.local
Status: Connecting to 10.10.10.10:21...
Status: Connection established, waiting for welcome message...
Trace: CFtpControlSocket::OnReceive()
Response: 220 Blue Coat FTP Service
Trace: CFtpControlSocket::SendNextCommand()
Command: USER user@…
Trace: CFtpControlSocket::OnReceive()
Response: 331 User userOK. Password required
Trace: CFtpControlSocket::SendNextCommand()
Command: PASS
Trace: CFtpControlSocket::OnReceive()
Response: 230-User userhas group access to: user
Response: 230 OK. Current restricted directory is /
Trace: CFtpControlSocket::SendNextCommand()
Command: SYST
Trace: CFtpControlSocket::OnReceive()
Response: 215 UNIX Type: L8
Trace: CFtpControlSocket::SendNextCommand()
Command: FEAT
Trace: CFtpControlSocket::OnReceive()
Response: 211-Extensions supported:
Response: EPRT
Response: IDLE
Response: MDTM
Response: SIZE
Response: REST STREAM
Response: MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
Response: MLSD
Response: TVFS
Response: ESTP
Response: PASV
Response: EPSV
Response: SPSV
Response: ESTA
Response: AUTH TLS
Response: PBSZ
Response: PROT
Response: 211 End.
Status: Connected
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFileZillaEnginePrivate::ResetOperation(0)
Status: Retrieving directory listing...
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::ChangeDirSend()
Command: PWD
Trace: CFtpControlSocket::OnReceive()
Response: 257 "/" is your current location
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
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 Command okay.
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 (10,10,10,10,66,80)
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 2
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 4
Command: LIST
Trace: CTransferSocket::OnConnect
Trace: CTransferSocket::OnReceive(), m_transferMode=0
Trace: CFtpControlSocket::OnReceive()
Response: 150 File status okay; about to open data connection.
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: drwx--x--x 14 769800 user 4096 Sep 10 18:50 .
Listing: drwx--x--x 14 769800 user 4096 Sep 10 18:50 ..
Listing: -rw-r--r-- 1 769800 user 454 Sep 9 14:20 XXXXXXXX
Listing: drwxr-xr-x 2 769800 user 76 Sep 2 15:48 XXXXXXXXX
Listing: drwxr-xr-x 6 769800 user 73 Mar 3 2009 XXXXXXXX
Listing: -rwxr-xr-x 1 769800 user 2325 Sep 2 19:28 XXXXXXXX
Trace: CTransferSocket::TransferEnd(1)
Trace: CFtpControlSocket::TransferEnd()
Trace: CFtpControlSocket::OnReceive()
Response: 226 Transfer complete, closing data connection.
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 = 3
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::ListSend()
Trace: state = 4
Status: Calculating timezone offset of server...
Command: MDTM .htaccess
Trace: CFtpControlSocket::OnReceive()
Response: 213 20090909142056
Trace: CFtpControlSocket::ListParseResponse()
Status: Timezone offsets: Server: 0 seconds. Local: 7200 seconds. Difference: 7200 seconds.
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Status: Directory listing successful
Trace: CFileZillaEnginePrivate::ResetOperation(0)

Response with version 3.2.0

Status: Using proxy proxyserver.local
Status: Resolving address of proxyserver.local
Status: Connecting to 10.10.10.10:21...
Status: Connection established, waiting for welcome message...
Trace: CFtpControlSocket::OnReceive()
Response: 220 Blue Coat FTP Service
Trace: CFtpControlSocket::SendNextCommand()
Command: USER user@…
Trace: CFtpControlSocket::OnReceive()
Response: 331 User userOK. Password required
Trace: CFtpControlSocket::SendNextCommand()
Command: PASS
Trace: CFtpControlSocket::OnReceive()
Response: 230-User userhas group access to: user
Response: 230 OK. Current restricted directory is /
Trace: CFtpControlSocket::SendNextCommand()
Command: SYST
Trace: CFtpControlSocket::OnReceive()
Response: 215 UNIX Type: L8
Trace: CFtpControlSocket::SendNextCommand()
Command: FEAT
Trace: CFtpControlSocket::OnReceive()
Response: 211-Extensions supported:
Response: EPRT
Response: IDLE
Response: MDTM
Response: SIZE
Response: REST STREAM
Response: MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
Response: MLSD
Response: TVFS
Response: ESTP
Response: PASV
Response: EPSV
Response: SPSV
Response: ESTA
Response: AUTH TLS
Response: PBSZ
Response: PROT
Response: 211 End.
Status: Connected
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Status: Retrieving directory listing...
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::ChangeDirSend()
Command: PWD
Trace: CFtpControlSocket::OnReceive()
Response: 257 "/" is your current location
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
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 Command okay.
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 (10,10,10,10,31,76)
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 2
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 4
Command: LIST
Trace: CTransferSocket::OnConnect
Trace: CTransferSocket::OnReceive(), m_transferMode=0
Trace: CFtpControlSocket::OnReceive()
Response: 150 File status okay; about to open data connection.
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: drwx--x--x 14 769800 user 4096 Sep 10 18:50 .
Listing: drwx--x--x 14 769800 user 4096 Sep 10 18:50 ..
Listing: -rw-r--r-- 1 769800 user 454 Sep 9 14:20 .XXXXXXX
Listing: drwxr-xr-x 2 769800 user 76 Sep 2 15:48 XXXXXXXX
Listing: drwxr-xr-x 6 769800 user 73 Mar 3 2009 XXXXXXXX
Listing: -rwxr-xr-x 1 769800 user 2325 Sep 2 19:28 XXXXXXXX
Trace: CTransferSocket::TransferEnd(1)
Trace: CFtpControlSocket::OnReceive()
Response: 226 Transfer complete, closing data connection.
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 5
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 8
Trace: CFtpControlSocket::TransferEnd()
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFtpControlSocket::ParseSubcommandResult(0)
Trace: CFtpControlSocket::ListSubcommandResult()
Trace: state = 3
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::ListSend()
Trace: state = 4
Status: Calculating timezone offset of server...
Command: MDTM .htaccess
Trace: CFtpControlSocket::OnReceive()
Response: 213 20090909142056
Trace: CFtpControlSocket::ListParseResponse()
Status: Timezone offsets: Server: 0 seconds. Local: 7200 seconds. Difference: 7200 seconds.
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Status: Directory listing successful

Change History (3)

comment:1 by Tim Kosse, 15 years ago

Resolution: rejected
Status: newclosed

Looks like your firewall is broken, it does not support MLSD which has already been standardized for quite some time.

Furthermore, your firewall is utterly broken since it does not filter out unknown features from the FEAT response.

You need to upgrade to a proper firewall.

comment:2 by Ian Roy, 15 years ago

Resolution: rejected
Status: closedreopened

I have had this same issue. The problem is that I am stuck behind a corporate firewall and I have no ability to change or upgrade the settings for the firewall.

I have modified the source to add a configuration value in the SiteManager dialog to allow each site the option to "Use MLSD".

How do I go about uploading/commiting my changes that incorporate this new setting?

comment:3 by Alexander Schuch, 12 years ago

Resolution: rejected
Status: reopenedclosed

@enderblue

You create a patch (diff -u) between your source and the latest version of FileZilla. Either 3.5.3 or if possible "trunk" in SVN. Submit the patch to the patch tracker and see.

You might also add a reference to this bug.

Anyway, this bug report is due to a broken FTP proxy/firewall. So I reject it again.

Note: See TracTickets for help on using tickets.