svn commit: r199655 - head/usr.bin/w

Hajimu UMEMOTO ume at
Wed Nov 25 16:28:10 UTC 2009


>>>>> On Tue, 24 Nov 2009 17:18:49 -0800
>>>>> Juli Mallett <jmallett at> said:

jmallett> I'm not sure this is right.  While the manpage implies that doing no
jmallett> resolution means that it will show numeric addresses, since that is
jmallett> not correct, there are two ways to go.  As you have done, you can
jmallett> choose to try to resolve hostnames to IP addresses.  You could also do
jmallett> as the code before did and do no resolution.  I frequently use 'w -n'
jmallett> on systems with slow nameservers to see who is logged in without
jmallett> triggering a bunch of DNS traffic that I then have to wait for.
jmallett> Trying to resolve the name to a numeric address presents that problem.
jmallett>  Since it is not possible to always show a numeric address (if, for
jmallett> example, the hostname is no longer valid) I'm not sure that this is
jmallett> the right direction to try to go with 'w -n'.

The feature was present in the past, and was dropped by 1.48.  The
reason is that we have no idea what address family they belong to.
So, I reintroduce it for just one A/AAAA RR case.

However, a hostname in utmp is truncated in many cases.  It is useless
to query for a truncated hostname.  How about this patch?

Index: usr.bin/w/w.c
diff -u -p usr.bin/w/w.c.orig usr.bin/w/w.c
--- usr.bin/w/w.c.orig	2009-11-21 20:27:35.000000000 +0900
+++ usr.bin/w/w.c	2009-11-25 12:40:19.142972545 +0900
@@ -383,7 +383,7 @@ main(int argc, char *argv[])
 			if (isaddr && realhostname_sa(fn, sizeof(fn), sa,
 			    sa->sa_len) == HOSTNAME_FOUND)
 				p = fn;
-		} else if (!isaddr) {
+		} else if (!isaddr && strlen(p) < UT_HOSTSIZE) {
 			 * If a host has only one A/AAAA RR, change a
 			 * name into an IP address


Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan
ume at  ume@{,jp.}

More information about the svn-src-head mailing list