L.SYS(5)L.SYS(5)NAMEL.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$protocols@pkt_size*windows!debug
Keyword is required, and must be one of:
Any Any time, any day of the week.
UUCP 1
L.SYS(5)L.SYS(5)
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.
Polled 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 other time fields are optional:
![k]debug Sets the debugging level to debug. The
optional `k' arranges to keep a time-stamped
audit file. NB: this overrides remote
debugging, so !0 can be used to prevent
debugging being set remotely.
/grade Grade is a 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.
UUCP 2
L.SYS(5)L.SYS(5)
;retry_time This 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.
$protocols A list of protocol character names to be
used at this time. (Presumably a sub-set of
those available).
@pkt_size The packet size to be used on this circuit
[g-protocol default 64].
*windows The number of packet windows to be used on
this circuit [g-protocol default 7].
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.
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.
SLAVE This indicates that this entry applies to uucico
when invoked in slave mode to receive a call. The
class and device fields can be used to match
particular speeds and devices. The time field can
be used to restrict the grade of messages sent
after turn-around to master mode, etc.
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
UUCP 3
L.SYS(5)L.SYS(5)
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
UUCP 4
L.SYS(5)L.SYS(5)
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 embedded in the expect or
send strings include:
\b Generate a 3/10 second BREAK.
\bn Where n is a single-digit number; generate an n/10
second BREAK.
\c Suppress the \r at the end of a send string.
\d Delay; pause for 1 second. (Send only.)
\r Carriage Return.
\s Space.
\n Newline.
\xxx Where 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:
BREAK Generate a 3/10 second BREAK.
BREAKn Generate an n/10 second BREAK.
CR Send a Carriage Return (same as "").
EOT Send an End-Of-Transmission character, ASCII
\004.
Note that this will cause most hosts to hang up.
NL Send a Newline.
PAUSE Pause for 3 seconds.
PAUSEn Pause for n seconds.
P_ODD Use odd parity on future send strings.
P_ONE Use parity one on future send strings.
P_EVEN Use even parity on future send strings.
(Default)
P_ZERO Use parity zero on future send strings.
P_HWFLOW_ON
Use RTS/CTS flow control in this session. Note
UUCP 5
L.SYS(5)L.SYS(5)
that this depends on a non-RS232 interpretation
of the RTS pin, where it means "ready to
receive" rather than "request to send". Telebit
modems, among others, support this nonstandard
interpretation.
P_HWFLOW_OFF
Turn off P_HWFLOW_ON.
P_MDMBUF_ON
Use modem-control (usually DCD/DTR) flow control
in this session.
P_MDMBUF_OFF
Turn off P_MDMBUF_ON.
P_RTSCTS_ON
Use RTS/CTS handshaking in the way RS232
intended it to be used, which is to say, assert
RTS and wait for CTS.
P_RTSCTS_OFF
Turn off P_RTSCTS_ON.
P_CLOCAL_ON
Ignore modem control signals. You should do
this before you expect or send any strings, if
the line does not assert ``data carrier detect''
(DCD).
P_CLOCAL_OFF
Respond to modem control signals (the default).
If you use P_CLOCAL_ON early in the chat script,
and at a later point you have a reasonable
expectation that ``data carrier detect'' (DCD)
will have been asserted, you can and should turn
CLOCAL back on so that uucico can detect a
hangup if it occurs.
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
UUCP 6
L.SYS(5)L.SYS(5)SEE ALSOuucp(1), uux(1), L-devices(5), services(5), uucico(8)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.
UUCP 7