L.SYS(5)L.SYS(5)NAME
L.sys - UUCP remote host description file
DESCRIPTION
The L.sys file is consulted by the UUCP daemon uucico(8C) for
information on remote systems. L.sys includes the system name,
appropriate times to call, phone numbers, and a login and password for
the remote system. L.sys is thus a privileged file, owned by the UUCP
Administrator; it is accessible only to the Administrator and to the
superuser.
Each line in L.sys describes one connection to one remote host, and has
the form:
System Times Caller Class Device/Phone_Number [Expect Send]....
Fields can be separated by any number of blanks or tabs. Lines
beginning with a `#' character are comments; long lines can be
continued by appending a `\' character to the end of the line.
The first five fields (System through Device/Phone_Number) specify the
hardware mechanism that is necessary to make a connection to a remote
host, such as a modem or network. Uucico searches from the top down
through L.sys to find the desired System; it then opens the L-
devices(5) file and searches for the first available device with the
same Caller, Class, and (possibly) Device. (``Available'' means that
the device is ready and not being used for something else.) Uucico
attempts a connection using that device; if the connection cannot be
made (for example, a dialer gets a busy signal), uucico tries the next
available device. If this also fails, it returns to L.sys to look for
another line for the same System. If none is found, uucico gives up.
System is the hostname of the remote system. Every machine with which
this system communicates via UUCP should be listed, regardless of who
calls whom. Systems not listed in L.sys will not be permitted a
connection. The local hostname should not appear here for security
reasons.
Times is a comma-separated list of the times of the day and week that
calls are permitted to this System. Times is most commonly used to
restrict long distance telephone calls to those times when rates are
lower. List items are constructed as:
keywordhhmm-hhmm/grade;retry_time
Keyword is required, and must be one of:
Any Any time, any day of the week.
Wk Any weekday. In addition, Mo, Tu, We, Th, Fr, Sa, and Su can be
used for Monday through Sunday, respectively.
Evening When evening telephone rates are in effect, from 1700 to 0800
Monday through Friday, and all day Saturday and Sunday.
Evening is the same as Wk1700-0800,Sa,Su.
Night When nighttime telephone rates are in effect, from 2300 to 0800
Monday through Friday, all day Saturday, and from 2300 to 1700
Sunday. Night is the same as Any2300-0800,Sa,Su0800-1700.
NonPeak This is a slight modification of Evening. It matches when the
USA X.25 carriers have their lower rate period. This is 1800 to
0700 Monday through Friday, and all day Saturday and Sunday.
NonPeak is the same as Any1800-0700,Sa,Su.
Never Never call; calling into this System is forbidden or
impossible. This is intended for polled connections, where the
remote system calls into the local machine periodically. This
is necessary when one of the machines is lacking either dial-in
or dial-out modems.
The optional hhmm-hhmm subfield provides a time range that modifies the
keyword. hhmm refers to hours and minutes in 24-hour time (from 0000
to 2359). The time range is permitted to "wrap" around midnight, and
will behave in the obvious way. It is invalid to follow the Evening,
NonPeak, and Night keywords with a time range.
The grade subfield is optional; if present, it is composed of a `/'
(slash) and single character denoting the grade of the connection, from
0 to 9, A to Z, or a to z. This specifies that only requests of grade
grade or better will be transferred during this time. (The grade of a
request or job is specified when it is queued by uucp or uux.) By
convention, mail is sent at grade C, news is sent at grade d, and uucp
copies are sent at grade n. Unfortunately, some sites do not follow
these conventions, so it is not 100% reliable.
The retry_time subfield is optional; it must be preceded by a `;'
(semicolon) and specifies the time, in minutes, before a failed
connection may be tried again. (This restriction is in addition to any
constraints imposed by the rest of the Time field.) By default, the
retry time starts at 10 minutes and gradually increases at each
failure, until after 26 tries uucico gives up completely (MAX RETRIES).
If the retry time is too small, uucico may run into MAX RETRIES too
soon.
Caller is the type of device used:
ACU Automatic call unit or auto-dialing modem such as the Hayes
Smartmodem 1200 or Novation ``Smart Cat''. See L-devices for a
list of supported modems.
DIR Direct connect; hardwired line (usually RS-232) to a remote
system.
MICOM Micom Terminal Switch.
PAD X.25 PAD connection.
PCP GTE Telenet PC Pursuit. See L-devices for configuration
details.
SYTEK Sytek high-speed dedicated modem port connection.
TCP Berkeley TCP/IP or 3Com UNET connection. These are mutually
exclusive. TCP ports do not need entries in L-devices since
all the necessary information is contained in L.sys. If
several alternate ports or network connections should be tried,
use multiple L.sys entries.
Class is usually the speed (baud) of the device, typically 300, 1200,
or 2400 for ACU devices and 9600 for direct lines. Valid values are
device dependent, and are specified in the L-devices file.
On some devices, the baud may be preceded by a non-numeric prefix.
This is used in L-devices to distinguish among devices that have
identical Caller and baud, but yet are distinctly different. For
example, 1200 could refer to all Bell 212-compatible modems, V1200 to
Racal-Vadic modems, and C1200 to CCITT modems, all at 1200 baud.
On TCP connections, Class is the port number (an integer number) or a
port name from /etc/services that is used to make the connection. For
standard Berkeley TCP/IP, UUCP normally uses port number 540.
Device/Phone_Number varies based on the Caller field. For ACU devices,
this is the phone number to dial. The number may include: digits 0
through 9; # and * for dialing those symbols on tone telephone lines; -
(hyphen) to pause for a moment, typically two to four seconds; = (equal
sign) to wait for a second dial tone (implemented as a pause on many
modems). Other characters are modem dependent; generally standard
telephone punctuation characters (such as the slash and parentheses)
are ignored, although uucico does not guarantee this.
The phone number can be preceded by an alphabetic string; the string is
indexed and converted through the L-dialcodes(5) file.
For DIR devices, the Device/Phone_Number field contains the name of the
device in /dev that is used to make the connection. There must be a
corresponding line in L-devices with identical Caller, Class, and
Device fields.
For TCP and other network devices, Device/Phone_Number holds the true
network name of the remote system, which may be different from its UUCP
name (although one would hope not).
Expect and Send refer to an arbitrarily long set of strings that
alternately specify what to expect and what to send to login to the
remote system once a physical connection has been established. A
complete set of expect/send strings is referred to as an expect/send
script. The same syntax is used in the L-devices file to interact with
the dialer prior to making a connection; there it is referred to as a
chat script. The complete format for one expect/send pair is:
expect-timeout-send-expect-timeout send
Expect and Send are character strings. Expect is compared against
incoming text from the remote host; send is sent back when expect is
matched. By default, the send is followed by a `\r' (carriage return).
If the expect string is not matched within timeout seconds (default
45), then it is assumed that the match failed. The `expect-send-
expect' notation provides a limited loop mechanism; if the first expect
string fails to match, then the send string between the hyphens is
transmitted, and uucico waits for the second expect string. This can be
repeated indefinitely. When the last expect string fails, uucico hangs
up and logs that the connection failed.
The timeout can (optionally) be specified by appending the parameter
`~nn' to the expect string, when nn is the timeout time in seconds.
Backslash escapes that may be imbedded in the expect or send strings
include:
\bGenerate a 3/10 second BREAK.
\bnWhere n is a single-digit number;
generate an n/10 second BREAK.
\cSuppress the \r at the end of a send string.
\dDelay; pause for 1 second. (Send only.)
\rCarriage Return.
\sSpace.
\nNewline.
\xxxWhere xxx is an octal constant;
denotes the corresponding ASCII character.
As a special case, an empty pair of double-quotes "" in the expect
string is interpreted as ``expect nothing''; that is, transmit the send
string regardless of what is received. Empty double-quotes in the send
string cause a lone `\r' (carriage return) to be sent.
One of the following keywords may be substituted for the send string:
BREAKGenerate a 3/10 second BREAK
BREAKnGenerate an n/10 second BREAK
CRSend a Carriage Return (same as "").
EOTSend an End-Of-Transmission character, ASCII \004.
Note that this will cause most hosts to hang up.
NLSend a Newline.
PAUSEPause for 3 seconds.
PAUSEnPause for n seconds.
P_ODDUse odd parity on future send strings.
P_ONEUse parity one on future send strings.
P_EVENUse even parity on future send strings. (Default)
P_ZEROUse parity zero on future send strings.
Finally, if the expect string consists of the keyword ABORT, then the
string following is used to arm an abort trap. If that string is
subsequently received any time prior to the completion of the entire
expect/send script, then uucico will abort, just as if the script had
timed out. This is useful for trapping error messages from port
selectors or front-end processors such as ``Host Unavailable'' or
``System is Down.''
For example:
"" "" ogin:--ogin: nuucp ssword: ufeedme
This is executed as, ``When the remote system answers, expect nothing.
Send a carriage return. Expect the remote to transmit the string
`ogin:'. If it doesn't within 45 seconds, send another carriage return.
When it finally does, send it the string `nuucp'. Then expect the
string `ssword:'; when that is received, send `ufeedme'.''
FILES
/etc/uucp/L.sys
/etc/uucp/UUAIDS/L.sysL.sys example
SEE ALSOuucp(1C), uux(1C), L-devices(5), services(5), uucico(8C)BUGS
``ABORT'' in the send/expect script is expressed ``backwards,'' that
is, it should be written `` expect ABORT'' but instead it is `` ABORT
expect''.
Several of the backslash escapes in the send/expect strings are
confusing and/or different from those used by AT&T and Honey-Danber
UUCP. For example, `\b' requests a BREAK, while practically everywhere
else `\b' means backspace. `\t' for tab and `\f' for formfeed are not
implemented. `\s' is a kludge; it would be more sensible to be able to
delimit strings with quotation marks.
4.3 Berkeley Distribution April 24, 1986 L.SYS(5)