Ftp-WG: NLST vs MLSD

Alun Jones <[email protected]> Wed, 16 Oct 2002 18:19:05 -0500
Newsgroups gmane.ietf.ftpext
Message-ID <[email protected]>
At 05:15 PM 10/16/2002, D. J. Bernstein wrote:
>Alun Jones writes:
> > The client, in good faith, is passing what it believes is a "directory or
> > other system-specific file group descriptor" given by its user
>
>Incorrect.
>
>Perhaps you're not familiar with the programs in question. We're talking
>about the ``mget'' command supported by the BSD ftp program and its
>imitators. The mget argument is a wildcard, not a directory name.

The client has no way of knowing that.  The client takes what is passed as 
a parameter to mget by the user, and sends it exactly in NLST.  Then it 
takes the response and gets each file.  You seem to think that the client 
somehow "knows" that the user's parameter is flying in the face of RFC 
959.  It knows no such thing.

>Or perhaps you're confused by the phrase ``other system-specific file
>group descriptor'' in RFC 959. That's simply recognizing the fact that
>some systems back then had other names for directories: disks, mounts,
>etc. You would have already realized that this doesn't include wildcards
>if you had read RFC 959 more carefully: the same phrase is used for CWD.

I've also taken it on previous occasions to mean other, more exotic, 
things, such as zip files or other archives (really, what's the difference 
between one of those and a directory?).  A wild-card specification is no 
more or less valid, and a sufficiently perverse mindset could create an 
implementation wherein "CWD *.txt" might allow you to list/access only 
files containing ".txt" in their name.  It _is_ a descriptor for a group of 
files.

>Bottom line: Certain client implementors have led the users to believe
>that mget * will retrieve all files in the current directory, but they
>are not implementing this function correctly.

Perhaps you can point me to the documentation that has led these users down 
the garden path.  One could just as easily say that certain server 
implementors have done this, by accepting and expanding wild cards.

Well, whatever, it's clear that there's a whole mess caused by the 
implementation of wild-card support in an environment that wasn't designed 
for that purpose.  MLSD specifically forbids wild-cards for just that 
reason, it seems.  However, there's no reason why an MLSW command couldn't 
be specified, that leaves the topic of wild-card expansion up to the 
server.  Users aren't all that confused by existing wild-card techniques, 
and they won't be all that confused by an MLSW command being used for mget 
in the future, as long as the command is designed specifically to address 
that need.

Alun.
~~~~

--
Texas Imperial Software   | Try WFTPD, the Windows FTP Server. Find us at
1602 Harvest Moon Place   | http://www.wftpd.com or email [email protected]
Cedar Park TX 78613-1419  | VISA/MC accepted.  NT-based sites, be sure to
Fax/Voice +1(512)258-9858 | read details of WFTPD Pro for NT.