Go forward to The R Command.
Go backward to UUCP Protocol Commands.
Go up to UUCP Protocol Commands.

The S Command
.............

master: `S FROM TO USER -OPTIONS TEMP MODE NOTIFY SIZE'
     The `S' and the `-' are literal characters.  This is a request by
     the master to send a file to the slave.

    FROM
          The name of the file to send.  If the `C' option does not
          appear in OPTIONS, the master will actually open and send
          this file.  Otherwise the file has been copied to the spool
          directory, where it is named TEMP.  The slave ignores this
          field unless TO is a directory, in which case the basename of
          FROM will be used as the file name.  If FROM is a spool
          directory filename, it must be a data file created for or by
          an execution, and must begin with `D.'.

    TO
          The name to give the file on the slave.  If this field names
          a directory the file is placed within that directory with the
          basename of FROM.  A name ending in `/' is taken to be a
          directory even if one does not already exist with that name.
          If TO begins with `X.', an execution file will be created on
          the slave.  Otherwise, if TO begins with `D.' it names a data
          file to be used by some execution file.  Otherwise, TO should
          not be in the spool directory.

    USER
          The name of the user who requested the transfer.

    OPTIONS
          A list of options to control the transfer.  The following
          options are defined (all options are single characters):
         `C'
               The file has been copied to the spool directory (the
               master should use TEMP rather than FROM).

         `c'
               The file has not been copied to the spool directory
               (this is the default).

         `d'
               The slave should create directories as necessary (this
               is the default).

         `f'
               The slave should not create directories if necessary,
               but should fail the transfer instead.

         `m'
               The master should send mail to USER when the transfer is
               complete.

         `n'
               The slave should send mail to NOTIFY when the transfer is
               complete.

    TEMP
          If the `C' option appears in OPTIONS, this names the file to
          be sent.  Otherwise if FROM is in the spool directory, TEMP
          is the same as FROM.  Otherwise TEMP may be a dummy string,
          such as `D.0'.  After the transfer has been succesfully
          completed, the master will delete the file TEMP.

    MODE
          This is an octal number giving the mode of the file on the
          master.  If the file is not in the spool directory, the slave
          will always create it with mode 0666, except that if (MODE &
          0111) is not zero (the file is executable), the slave will
          create the file with mode 0777.  If the file is in the spool
          directory, some UUCP packages will use the algorithm above
          and some will always create the file with mode 0600.  This
          field is ignored by UUPlus, since it is meaningless on DOS;
          UUPlus uses 0666 for outgoing files.

    NOTIFY
          This field may not be present, and in any case is only
          meaningful if the `n' option appears in OPTIONS.  If the `n'
          option appears, then, when the transfer is successfully
          completed, the slave will send mail to NOTIFY, which must be
          a legal mailing address on the slave.  If a SIZE field will
          appear but the `n' option does not appear, NOTIFY will always
          be present, typically as the string `dummy' or simply a pair
          of double quotes.

    SIZE
          This field is only present when doing Taylor UUCP or SVR4
          UUCP size negotiation.  It is the size of the file in bytes.
          Taylor UUCP version 1.03 sends the size as a decimal integer,
          while versions 1.04 and up, and all other UUCP packages that
          support size negotiation, send the size in base 16 with a
          leading 0x.

     The slave then responds with an `S' command response.

    `SY START'
          The slave is willing to accept the file, and file transfer
          begins.  The START field will only be present when using file
          restart.  It specifies the byte offset into the file at which
          to start sending.  If this is a new file, START will be 0x0.

    `SN2'
          The slave denies permission to transfer the file.  This can
          mean that the destination directory may not be accessed, or
          that no requests are permitted.  It implies that the file
          transfer will never succeed.

    `SN4'
          The slave is unable to create the necessary temporary file.
          This implies that the file transfer might succeed later.

    `SN6'
          This is only used by Taylor UUCP size negotiation.  It means
          that the slave considers the file too large to transfer at
          the moment, but it may be possible to transfer it at some
          other time.

    `SN7'
          This is only used by Taylor UUCP size negotiation.  It means
          that the slave considers the file too large to ever transfer.

    `SN8'
          This is only used by Taylor UUCP.  It means that the file was
          already received in a previous conversation.  This can happen
          if the receive acknowledgement was lost after it was sent by
          the receiver but before it was received by the sender.

    `SN9'
          This is only used by Taylor UUCP (versions 1.05 and up) and
          UUPlus (versions 2.0 and up).  It means that the remote
          system was unable to open another channel (see the discussion
          of the `i' protocol for more information about channels).
          This implies that the file transfer might succeed later.

    `SN10'
          This is reportedly used by SVR4 UUCP to mean that the file
          size is too large.

     If the slave responds with `SY', a file transfer begins.  When the
     file transfer is complete, the slave sends a `C' command response.

    `CY'
          The file transfer was successful.

    `CYM'
          The file transfer was successful, and the slave wishes to
          become the master; the master should send an `H' command,
          described below.

    `CN5'
          The temporary file could not be moved into the final
          location.  This implies that the file transfer will never
          succeed.

   After the `C' command response has been received (in the `SY' case)
or immediately (in an `SN' case) the master will send another command.