robinrodricks / FluentFTP

An FTP and FTPS client for .NET & .NET Standard, optimized for speed. Provides extensive FTP commands, File uploads/downloads, SSL/TLS connections, Automatic directory listing parsing, File hashing/checksums, File permissions/CHMOD, FTP proxies, FXP support, UTF-8 support, Async/await support, Powershell support and more. Written entirely in C#.
MIT License
3.14k stars 657 forks source link

Rename FEAT capability MLSD -> MLST #1636

Closed FanDjango closed 3 months ago

FanDjango commented 3 months ago

See #1635

The capability should be called MLST in the code and not MLSD. Global rename needed.

robinrodricks commented 3 months ago

It looks ok, but it was my understanding that FTP servers can use MLSD and/or MLST?

FanDjango commented 3 months ago

it was my understanding that FTP servers can use MLSD and/or MLST?

The operative word, I suppose, is "was". FTP servers should not but sometimes do.

In the RFC, it is written: Either both, or none of them. The availability of both is advertised with MLST. An advertisement MLSD does not exist.

But as one can see, some FTP servers ignore the RFC and advertise only MLSD. Some of them then support only MLSD. Some of them support both commands.

This PR changes only the name MLSD to MLST. It does not change the current logic of allowing both MLST and MLSD advertisements to set the enum "MLST" to true.

It still leaves the decision open, to

  1. Adhere to the RFC.

This will hamper all none RFC compliant servers in different ways, depending on their deviation.

  1. Consider MLST and MLSD advertisements to be synonymous. This is the current implementation, even with this PR applied.

  2. Fix #1635 by considering a MLSD advertisement to mean: MLSD command (but not MLST) is supported. This will break an unkown number of servers that need "MLST and MLSD advertisements to be synonymous" (2 above).

Advice?

robinrodricks commented 3 months ago

I think this should cover it: - https://github.com/robinrodricks/FluentFTP/issues/1635#issuecomment-2303868824

FanDjango commented 3 months ago

Yes. It does.