NAME
L.sys - UUCP remote host description file
DESCRIPTION
The L.sys file is consulted by the UUCP daemon uucico(8) 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(8) 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(8) attempts a connection using
that
device; if the connection cannot be made (for example, a
dialer
gets a busy signal), uucico(8) 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(8) 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(1) or uux(1).) 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(8) gives up completely
(MAX
RETRIES). If the retry time is too small, uucico(8) 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(5) 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(5) 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(5) 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(5)
file.
On some devices, the baud may be
preceded by a non-numeric prefix.
This is used in L-devices(5) 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(8)
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 (e.g., /dev/ttya) that is used to make
the
connection. There must be a corresponding line in
L-devices(5) 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(5)
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 ‘
(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(8) waits for
the
second expect string. This can be repeated indefinitely.
When the
last expect string fails, uucico(8) 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:
Generate a 3/10 second BREAK. W
h e
is a single-digit number; r e
generate an n/10 second BREAK.
Delay; pause for 1 second. (Send only.)
Carriage Return.
Space.
Newline.
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 ’ (carriage return) to be
the send string cause a lone ‘ 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 04.
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.
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(8) 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
/usr/lib/uucp/L.sys
SEE ALSO
uucp(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 r e q u e s t s a B R E A K ,
UUCP. For example, ‘w h i l e p r a c t i c a l l y m
e a n s b a c
everywhere else ‘k for tab and ‘ for s p a c e .
‘
formfeed are not implemented. ‘s a kludge; it would be
more
sensible to be able to delimit strings with quotation
marks.