[comp.protocols.tcp-ip] Rick Adams' new ftp and ftpd

braden@VENERA.ISI.EDU (05/11/89)

Without detracting from the significant effort that Rick has put into
improving the BSD ftp client and server programs, I want to clarify
the situation on FTP restart in his new versions.

The standard FTP restart mechanism defined in RFC-959 requires block
mode, and is NOT implemented in the new ftpd.  Instead, Rick has
defined and implemented a stream-mode restart mechanism, that is not
defined in either RFC-959 or the Host Requirements Draft.  It is
possible that this "stream mode restart" will be added to a future
version of the FTP specification, however it is not currently a part of
any standard.

Bob Braden
Annette DeSchon

rick@UUNET.UU.NET (Rick Adams) (05/11/89)

	The standard FTP restart mechanism defined in RFC-959 requires block
	mode, and is NOT implemented in the new ftpd.  Instead, Rick has
	defined and implemented a stream-mode restart mechanism, that is not
	defined in either RFC-959 or the Host Requirements Draft.  It is
	possible that this "stream mode restart" will be added to a future
	version of the FTP specification, however it is not currently a part of
	any standard.

Those waiting for block mode or block mode restart in ftpd are
advised not to hold their breath. (The "standard" FTP restart mechanism
is clearly inadequate.)

In the mean time, restart works fine in stream mode for both image
and ascii. I expect it to be running on most of the major unix based sites
providing anonymous ftp access.

You can think of it as another non-standard service that everyone
provides (e.g. rlogin, rsh, rcp)

--rick

(Following are my proposed changes to rfc959. They have been
submitted as suggested changes, but have not been officially approved
in any way.)


	Change section 3.5 ERROR RECOVERY AND RESTART

From:
 The restart procedure is defined only for the block and compressed
 mode of data transfer. It requires the sender...

To:
 The restart procedure is defined only for the block, compressed
 and stream mode of data transfer. Block and compressed mode
 require the sender...

	Insert into section 3.5 ERROR RECOVERY AND RESTART

STREAM MODE transfers with FILE STRUcture may be restarted even though
no restart marker has been transfered in addition to the data itself.
This is done by using the SIZE command followed by the RESTART (REST)
command.

When using TYPE ASCII or IMAGE, the SIZE command will return the number
of bytes that would actually be transferred if the file were to be sent
between the two systems. I.e. with type IMAGE, the SIZE normally would
be the number of octets in the file. With type ASCII, the SIZE would be
the number of characters in the file INCLUDING any characters that
would be inserted during the CR-LF expansion.


	Insert into Section 4.1.3 FTP Service Commands


MODIFCATION TIME (MDTM)

This command returns the time the file named in its argument field
was last modified. The time is returned in ISO 3307 "Representation
of the Time of Day" format. This format is YYYYMMDDHHmmSS or
YYYYMMDDHHmmSS.xxx, where
	YYYY	is the year
	MM	is the month (01-12)
	DD	is the day of the month (01-31)
	HH	is the hour of the day (00-23)
	mm	is the minute of the hour (00-59)
	SS	is the second of the hour (00-59)
	xxx	if present, is a fractional second and may be any length
Time is expressed in UTC (GMT), not local time.

SIZE OF FILE (SIZE)

This command returns the size of the file named in its argument field.
The value returned is in a format suitable for use with the RESTART (REST)
command. This format will change depending on the current MODE and
TYPE of the connection. E.g. For mode stream and type image, it would
be a count of the number of octets that would be transferred with the
RETREIVE (RETR) command. This command is normally used
in conjunction with the RESTART (REST) command.

nelson@sun.soe.clarkson.edu (Russ Nelson) (05/15/89)

In article <8905102222.AA17256@uunet.UU.NET> rick@UUNET.UU.NET (Rick Adams) writes:

   Those waiting for block mode or block mode restart in ftpd are
   advised not to hold their breath. (The "standard" FTP restart mechanism
   is clearly inadequate.)

You can start breathing again.  I have such a beast, hacked into the
BSD4.3 Tahoe ftpd.  I looked at hacking block mode into the client,
but the client's code is a real mess.

Why bother if I don't have a client?  Because I have convinced Phil
Karn's TCP/IP client and server to do block mode restart.

Send mail if you're insterested (as my daughter pronounces it :-).

--
--russ (nelson@clutx [.bitnet | .clarkson.edu])
I'm a right-to-lifer -- everyone has a right to earn a living sufficient to
feed himself and his family.