Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 02 May 1998 06:41:32 -0700
From:      David Greenman <dg@root.com>
To:        Eivind Eklund <eivind@yes.no>
Cc:        chat@FreeBSD.ORG
Subject:   Re: ftp.freebsd.org acting funny? 
Message-ID:  <199805021341.GAA22661@implode.root.com>
In-Reply-To: Your message of "Sat, 02 May 1998 14:17:57 %2B0200." <19980502141757.54394@follo.net> 

next in thread | previous in thread | raw e-mail | index | archive | help
>On Fri, May 01, 1998 at 05:10:32PM -0700, David Greenman wrote:
>>    I said:
>> 
>> >a much smaller set. -C would be the default in any case, and -F will be
>> >ignored.
>> 
>>    Oops, actually -C is not the default of course and it will also be
>> ignored.
>>    I now know why the problem is occuring with ncftp and it has to do with
>> it not conforming to the RFC regarding the NLST command. I don't think I'm
>> going to work around that.
>
>A large fraction of Unix people use ncftp2.  I'd hope you would
>reconsider - or if not, at least add a warning and a suggestion for
>another useable commandline FTP client to the login message.  I've not
>yet seen another usable commandline FTP for Unix :-(

   ncftp and ncftp2 work fine. What is broken is that people expect that
passing arguments to the "ls" command will be interpreted on the other
end when the RFC specifically says otherwise. RFC 959 is quite specific
about the behavior of the NLST command (which is what 'ls' does in ncftp):

         NAME LIST (NLST)

            This command causes a directory listing to be sent from
            server to user site.  The pathname should specify a
            directory or other system-specific file group descriptor; a
            null argument implies the current directory.  The server
            will return a stream of names of files and no other
            information.  The data will be transferred in ASCII or
            EBCDIC type over the data connection as valid pathname
            strings separated by <CRLF> or <NL>.  (Again the user must
            ensure that the TYPE is correct.)  This command is intended
            to return information that can be used by a program to
            further process the files automatically.  For example, in
            the implementation of a "multiple get" function.

   It specifically does not provide for multicolumn output, funny characters
added to the filenames to indicate their type, or provide for the passing and
processing of any command options. It takes a pathname argument and nothing
more. The reason that it worked at all with the standard BSD ftpd server is
that that had a kludge in the code to work around getting bogus arguments
to NLST, even though this makes it violate the FTP RFC.
   If I wanted to support this in my code, it is more than a matter of
adding a similar kludge - I'll also have to write the code to do those
(-C -F, etc) options, and I'm not too excited about doing that, especially
when the whole point of this exercise was to reduce CPU and memory overhead
on the machine.
   I am still listening to people's comments, however... :-)

-DG

David Greenman
Co-founder/Principal Architect, The FreeBSD Project

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-chat" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199805021341.GAA22661>