Subject: Re: UT_HOSTSIZE vs. MAXHOSTNAMELEN
To: None <firstname.lastname@example.org>
From: Greg A. Woods <email@example.com>
Date: 10/02/1999 15:22:25
[ On Friday, October 1, 1999 at 15:48:05 (-0500), Brian Stark wrote: ]
> Subject: UT_HOSTSIZE vs. MAXHOSTNAMELEN
> I'm thinking that the value of 16 may have something to do with the
> amount of space required to store an IPv4 address as a C-style string.
> For example the IP address string:
> requires 15 characters, plus one extra character for the null terminator
> so 16 characters seems to make sense...
Indeed this is the case. A long long time ago there were versions of
Unix that would put an ASCII IP# literal in ut_host if the hostname
retrieved was more than 16 characters. Indeed there's code in rlogind.c
to do exactly this, however not all (none of the other?) parts of *BSD
do things the same way (eg. xterm and telnetd just pass the hostname to
login, which simply trims it to fit, though telentd *could* do the right
thing if it was properly ported -- the code's there, just not used).
I'd always planned to hack everything to do this stuff more
consistently, but I've never got around to it. These days I think it
would be better to re-write all this stuff to be more xOpen/SUS
compliant, but perhaps with a unique new non-binary file format.
(BTW, as others have already pointed out the NUL isn't necessary in
struct utmp, but perhaps whomever set UT_HOSTSIZE way back when was
planning to make it necessary at some point.)
Greg A. Woods
+1 416 218-0098 VE3TCP <firstname.lastname@example.org> <robohack!woods>
Planix, Inc. <email@example.com>; Secrets of the Weird <firstname.lastname@example.org>