$k
Our UUCP node name V8.1 and later
The UUCP suite of software gets the name of the local host from the uname(2) system call, whereas sendmail gets the name of the local host from the gethostbyname(3) or getipnodebyname(3) system call. For sendmail to easily handle UUCP addresses, V8 sendmail also makes use of the uname(2) function.
First the host part of the fully qualified name
returned by gethostbyname(3) or
getipnodebyname(3) is saved
as the first string in the class $=w
. Then
uname(2) is called. If the
call succeeds, the macro $k
and the class $=k
are both given the
nodename value returned. If
the call fails, both are given the same hostname
value that was given to the $j
. If the system does not have
uname(2) available (if
HASUNAME was not defined when
sendmail was compiled; see
HAS... on page 114),
sendmail simulates it. The
sendmail program’s internal
replacement for uname begins by
reading /etc/whoami. If that
file does not exist or cannot be read,
sendmail scans
/usr/include/whoami.h for a
line beginning with the #define
sysname. If that fails and if
pre-V8.10 sendmail was compiled
with TRUST_POPEN[320] defined, sendmail
executes the following command and reads its output
as the UUCP node name:
uname -l
If all these fail, $k
is set to be the same as $j
.
$k
is assigned its
value when sendmail first
begins to run. It can be given a new value either in
the configuration file or from the command line.
Because $k
does
not change once it is defined, you need not prefix
it with
Get sendmail, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.