"to the user". This should not be taken literally. In
general, the User-FTP should save the restart
information (ssss,rrrr) in stable storage, e.g., append
it to a restart control file. An empty restart control
file should be created when the transfer first starts
and deleted automatically when the transfer completes
successfully. It is suggested that this file have a
name derived in an easily-identifiable manner from the
name of the file being transferred and the remote host
name; this is analogous to the means used by many text
editors for naming "backup" files.
There are three cases for FTP restart.
(1) User-to-Server Transfer
The User-FTP puts Restart Markers at
convenient places in the data stream. When the
Server-FTP receives a Marker, it writes all prior
data to disk, encodes its file system position and
transformation state as rrrr, and returns a "110
MARK ssss = rrrr" reply over the control
connection. The User-FTP appends the pair
(ssss,rrrr) to its restart control file.
To restart the transfer, the User-FTP fetches the
last (ssss,rrrr) pair from the restart control
file, repositions its local file system and
transformation state using ssss, and sends the
command "REST rrrr" to the Server-FTP.
(2) Server-to-User Transfer
The Server-FTP puts Restart Markers at
convenient places in the data stream. When the
User-FTP receives a Marker, it writes all prior
data to disk, encodes its file system position and
RFC1123 FILE TRANSFER -- FTP October 1989
transformation state as rrrr, and appends the pair
(rrrr,ssss) to its restart control file.
To restart the transfer, the User-FTP fetches the
last (rrrr,ssss) pair from the restart control
file, repositions its local file system and
transformation state using rrrr, and sends the
command "REST ssss" to the Server-FTP.
(3) Server-to-Server ("Third-Party") Transfer
The sending Server-FTP puts Restart Markers
at convenient places in the data stream. When it
receives a Marker, the receiving Server-FTP writes
all prior data to disk, encodes its file system
position and transformation state as rrrr, and
sends a "110 MARK ssss = rrrr" reply over the
control connection to the User. The User-FTP
appends the pair (ssss,rrrr) to its restart
control file.
To restart the transfer, the User-FTP fetches the
last (ssss,rrrr) pair from the restart control
file, sends "REST ssss" to the sending Server-FTP,
and sends "REST rrrr" to the receiving Server-FTP.
4.1.4 FTP/USER INTERFACE
This section discusses the user interface for a User-FTP
program.
4.1.4.1 Pathname Specification
Since FTP is intended for use in a heterogeneous
environment, User-FTP implementations MUST support remote
pathnames as arbitrary character strings, so that their form
and content are not limited by the conventions of the local
operating system.
DISCUSSION:
In particular, remote pathnames can be of arbitrary
length, and all the printing ASCII characters as well
as space (0x20) must be allowed. RFC-959 allows a
pathname to contain any 7-bit ASCII character except CR
or LF.
=23= |