SOLAR v0.95.3 slrxfer <> SLRXFER.TXT

The SOLAR program slrxfer.exe is the transfer engine for the Solar
System. It's main function is to allow SOUP packets to be transfered
via modem using a configurable file transfer protocol.

Command line syntax:
--------------------

  slrxfer -u username {-s|-r} [-v]

    -u username    : The user's login name. Required on the
                     command line.
    -s -or- -r     : -s to SEND a packet, -r to RECEIVE a packet.
                     The default is SEND (-s).
    -v             : Turn verbose mode on. Optional. Default is
                     no verbose mode.

  Command line switches may be upper case or lower case. Whitespace need
  not be used for the username (i.e. -uusername also works). If the -s
  or -r switches occur more than once, the last one found on the command
  line will take effect.

Installation:
-------------

  Under normal operations, when using Solar as a complete system
  underneath Waffle, slrxfer will be called as needed through the use of
  ~/waffle/extern files created by the other Solar programs. Solar
  expects to find slrxfer.exe in Solar's home directory.

    File location:

    In Solar's configuration file, the 'solarpath' parameter points to
    Solar's home directory. Slrxfer.exe must reside in that directory
    for the remainder of the Solar System to find it.

  Slrxfer loads configuration parameters from Waffle's static file, the
  Solar configuration file, and from the user's configuration file, if
  one exists. The location of Waffle's static file comes from the WAFFLE
  environment variable. The location of Solar's configuration file comes
  from either a SOLAR environment variable, or from a 'solar:' parameter
  in Waffle's static file, in that order. The user's configuration file
  is found through the 'user:' parameter in Waffle's static file, the
  username from the command line, and the filename OPTIONS.SLR.

    Environment variables:

    WAFFLE=c:\waffle\system\static
      - an entry in this file may point to Solar's configuration
        file (i.e. solar : c:\waffle\solar\solar.cfg)

    SOLAR=c:\waffle\solar\solar.cfg
      - This is another way to provide the location of Solar's
        configuration file. Only one method is required.

  Slrxfer uses the following parameters from Waffle's static file.
  All of the listed parameters must be present for slrxfer to work.

    user      - Path to root of user directories. This is combined
                with the username from the command line to find the
                user's directory.

    temporary - Path to temporary directory. Since Solar expects to
                have exclusive use of it's own temporary directory,
                relying on this parameter is a bad idea. The 'solarwork'
                parameter in Solar's configuration file overrides the
                value of 'temporary' and is preferred.

    waffle    - Path to root of Waffle system directories. This is
                combined with '\admin\solar' to form the location
                and name of the default log file. The 'logfile'
                parameter of Solar's configuration file overrides
                the location built from 'waffle'.

    uucpname  - Host machine's UUCP name. A packet created by Solar
                will have a filename based on the host machine's UUCP
                name. Names longer than 8 characters are truncated to
                8 characters for DOS compatibility.

  Slrxfer uses the following parameters from Solar's configuration
  file.

     solarwork - Path to Solar's temporary directory. This value
                overrides the 'temporary' parameter from Waffle's
                static file. The use of 'solarwork' is recommended
                since Solar expects to have exclusive use of it's
                own temporary directory. However, this parameter
                is optional.

     receive  - A definition for a transfer protocol to be used for
                receiving files. Slrxfer will use the first occurance
                of a 'receive' line as the default transfer protocol
                for BOTH send and receive. Values loaded from the user's
                configuration file override the default value set from
                the first 'receive' parameter.

     send     - A definition for a transfer protocol to be used for
                sending files.

  Slrxfer uses this parameter from the user's OPTIONS.SLR file.

     protocol - The user's selected transfer protocol for both
                sending and receiving. This value overrides the
                default protocol set from Solar's configuration file.

Operation:
----------

  Slrxfer operates in one of two modes, SEND or RECEIVE.

  SEND mode -

    In SEND mode, slrxfer first looks in the temporary directory for a
    packet file with a filename based on the host site's UUCP name. If a
    packet file is found, slrxfer calls the selected transfer protocol
    to send the file. If no packet file is found, slrxfer exits with an
    error message.

    If the transfer is successful, slrxfer removes the all files from
    the temporary directory. If the transfer fails for some reason,
    slrxfer will attempt to copy the packet file into the user's home
    directory. If the copy fails, the packet file will remain in the
    temporary directory. If the copy is successful, all files in the
    temporary directory are removed.

  RECEIVE mode -

    In RECEIVE mode, slrxfer simply calls the selected transfer protocol
    to receive a file. The incoming file is placed in the temporary
    directory. If the transfer fails, all files in the temporary
    directory are removed.

  In both cases, slrxfer swaps itself to disk to provide as much memory
  as possible for the transfer protocol programs it calls. Also, when
  slrxfer is used underneath Waffle as an external program (via an
  extern file), it MUST be run with Waffle's I/O redirection turned off
  (i.e. /local).

  Exit codes for slrxfer are as follows.

     0  = successful
     1  = incorrect command line usage
     2  = fatal error during execution

Deviations and deviant behavior:
--------------------------------

  Slrxfer is the only program which remains similar in function to
  versions previous to 0.95 of Solar. Some functions have been removed,
  such as subscription file updating and the use of the STATUS.TMP file.
  The other Solar programs presumably do the subscription file updates
  now. The mode in which slrxfer operates is now controlled from the
  command line, and it's success is measured by the presence or lack of
  a packet file in the temporary directory. Other 'features' which have
  been removed...

  - Loading of the protocol's command line from Solar's config file was
    doing string scans off into memory until hitting a linefeed somewhere.
    This caused some entertaining behavior on occation.

  - Tabs were not being treated as whitespace in configuration files.
    They are now.

  - UUCP names longer than 8 characters are now truncated to 8 characters
    when loaded.

  - The send transfer protocol is now passed an exact filename rather than
    a wildcarded filename. Just because DSZ can handle it doesn't mean they
    all can.

