FubarDevelopment / FtpServer

Portable FTP server written in .NET
http://fubardevelopment.github.io/FtpServer/
MIT License
472 stars 161 forks source link

Strange Filezilla behavior #138

Closed unknownguy closed 2 years ago

unknownguy commented 2 years ago

Traversing directories in Filezilla is not working properly.

Here is the log. The correct path is: "/templates/dynamic/DirectoryItem" Somehow I end up with "/templates/templates/dynamic/templates/dynamic/DirectoryItem"

Am I doing anything wrong? Or this is an issue with Filezilla.

Status: Resolving address of localhost Status: Connecting to [::1]:21... Status: Connection attempt failed with "ECONNREFUSED - Connection refused by server", trying next address. Status: Connecting to 127.0.0.1:21... Status: Connection established, waiting for welcome message... Response: 220 FTP Server Ready Command: AUTH TLS Response: 234 Enabling TLS Connection Status: Initializing TLS... Trace: TLS Handshake successful Trace: Protocol: TLS1.2, Key exchange: ECDHE-SECP384R1-RSA-PSS-RSAE-SHA256, Cipher: AES-256-GCM, MAC: AEAD, ALPN: Status: TLS connection established. Command: USER scutarug@gmail.com:72 Response: 331 User scutarug@gmail.com:72 logged in, needs password Command: PASS ***** Response: 230 Password ok, FTP server ready Command: SYST Response: 215 UNIX Type: A Command: FEAT Response: 211-Extensions supported: Response: AUTH TLS Response: EPRT Response: EPSV Response: HOST Response: LANG en Response: MDTM Response: MFCT Response: MFF modify;create; Response: MFMT Response: MLST type;size;perm;modify;create; Response: PBSZ Response: PROT Response: REST STREAM Response: SITE BLST Response: SIZE Response: UTF8 Response: 211 END Command: OPTS UTF8 ON Response: 200 Command okay. Command: PBSZ 0 Response: 200 Protection buffer size set to 0. Command: PROT P Response: 200 Data channel protection level set to P. Status: Logged in Trace: Measured latency of 5 ms Status: Retrieving directory listing of "/"... Command: CWD / Response: 250 Successful (/) Command: PWD Response: 257 "/" Command: TYPE I Response: 200 Binary transfer mode active. Command: PASV Response: 227 Entering Passive Mode (127,0,0,1,238,123). Trace: Binding data connection source IP to control connection source IP 127.0.0.1 Trace: Trying to resume existing TLS session. Command: MLSD Response: 150 Opening data connection. Trace: TLS Handshake successful Trace: TLS Session resumed Trace: Protocol: TLS1.2, Key exchange: ECDHE-SECP384R1, Cipher: AES-256-GCM, MAC: AEAD, ALPN: Response: 226 Closing data connection. Listing: perm=el;type=cdir; . Listing: perm=el;type=dir; fonts Listing: perm=el;type=dir; images Listing: perm=el;type=dir; scripts Listing: perm=el;type=dir; styles Listing: perm=el;type=dir; templateItems Listing: perm=el;type=dir; templates Listing: perm=r;size=0;type=file; FullMasterPage.html Listing: perm=r;size=0;type=file; settings.json Status: Directory listing of "/" successful Status: Retrieving directory listing of "/templates"... Command: CWD /templates Response: 250 Successful (//templates/) Command: PWD Response: 257 "//templates" Command: PASV Response: 227 Entering Passive Mode (127,0,0,1,238,132). Trace: Binding data connection source IP to control connection source IP 127.0.0.1 Trace: Trying to resume existing TLS session. Command: MLSD Response: 150 Opening data connection. Trace: TLS Handshake successful Trace: TLS Session resumed Trace: Protocol: TLS1.2, Key exchange: ECDHE-SECP384R1, Cipher: AES-256-GCM, MAC: AEAD, ALPN: Response: 226 Closing data connection. Listing: perm=el;type=cdir; . Listing: perm=el;type=pdir; .. Listing: perm=el;type=dir; dynamic Listing: perm=el;type=dir; section Listing: perm=el;type=dir; static Status: Directory listing of "/templates" successful Status: Retrieving directory listing of "/templates/dynamic"... Command: CWD /templates/dynamic Response: 250 Successful (//templates//templates/dynamic/) Command: PWD Response: 257 "//templates//templates/dynamic" Command: PASV Response: 227 Entering Passive Mode (127,0,0,1,238,136). Trace: Binding data connection source IP to control connection source IP 127.0.0.1 Trace: Trying to resume existing TLS session. Command: MLSD Response: 150 Opening data connection. Trace: TLS Handshake successful Trace: TLS Session resumed Trace: Protocol: TLS1.2, Key exchange: ECDHE-SECP384R1, Cipher: AES-256-GCM, MAC: AEAD, ALPN: Response: 226 Closing data connection. Listing: perm=el;type=cdir; . Listing: perm=el;type=pdir; .. Listing: perm=el;type=dir; DirectoryItem Listing: perm=el;type=dir; DirectoryList Listing: perm=el;type=dir; DirectoryListSelect Listing: perm=el;type=dir; Property Listing: perm=el;type=dir; PropertyList Listing: perm=el;type=dir; PropertyListSelect Status: Directory listing of "/templates/templates/dynamic" successful Status: Retrieving directory listing of "/templates/templates/dynamic/DirectoryItem"... Command: CWD /templates/templates/dynamic/DirectoryItem Response: 550 Not a valid directory. Error: Failed to retrieve directory listing Status: Retrieving directory listing of "/templates/templates/dynamic/DirectoryItem"... Command: CWD /templates/templates/dynamic Response: 550 Not a valid directory. Error: Failed to retrieve directory listing

unknownguy commented 2 years ago

It's bad custom file system, issue resolved.