Change the default behaviour of talk(1) to use "localhost" as the

"machine name" in ntalkd(8) request packets, when the destination
and source are local.

This should make talk(1) use much more pleasant for those security-
conscious individuals who have chosen to bind talkd to "localhost".

Previous to this change, talk(1) would require that the hostname of
the machine, as retrieved by gethostname(3), resolved to a valid and
reachable IPv4 address, using gethostbyname(3).

This makes talk(1) dependent on a valid host entry for "localhost"
in /etc/hosts (or the Domain Name System).

PR:		bin/23178
Submitted by:	angui.sh admin (with cleanups)
This commit is contained in:
Bruce M Simpson 2004-06-14 22:34:13 +00:00
parent 0abff1d4b6
commit 9d61853d9f
2 changed files with 18 additions and 1 deletions

View File

@ -90,7 +90,7 @@ get_names(argc, argv)
if (*cp == '\0') {
/* this is a local to local talk */
his_name = argv[1];
his_machine_name = my_machine_name;
my_machine_name = his_machine_name = "localhost";
} else {
if (*cp++ == '@') {
/* user@host */

View File

@ -142,3 +142,20 @@ The
.Nm
command appeared in
.Bx 4.2 .
.Pp
In
.Fx 5.2 ,
the default behaviour of
.Nm
was changed to treat local-to-local talk requests as originating
and terminating at
.Em localhost .
Before this change, it was required that the hostname (as per
.Xr gethostname 3 )
resolved to a valid IPv4 address (via
.Xr gethostbyname 3 ) ,
making
.Nm
unsuitable for use in configurations where
.Xr talkd 8
was bound to the loopback interface (normally for security reasons).