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

Hajimu UMEMOTO ume at FreeBSD.org
Wed Nov 25 17:15:32 UTC 2009


Hi,

>>>>> On Wed, 25 Nov 2009 08:31:03 -0800
>>>>> Juli Mallett <jmallett at FreeBSD.org> said:

jmallett> This catches hostnames that have been truncated but ignores hostnames
jmallett> that would have been truncated if they were still one letter longer.
jmallett> In any event, it generates traffic if '-n' is specified and tries to
jmallett> use the resolver, which is undesirable to at least me and DES.

Some people think it was regression.  So, I made this change.
It is useful that -n means don't resolve at all, as you think.  And,
we already familiar with the behavior these days.
But, the commit log of 1.48 didn't say it is a reason for the change.
Then, how about this patch?  It introduces -nn to resolve hostname in
utmp.

Index: usr.bin/w/w.1
diff -u usr.bin/w/w.1.orig usr.bin/w/w.1
--- usr.bin/w/w.1.orig	2009-10-25 10:10:29.000000000 +0900
+++ usr.bin/w/w.1	2009-11-26 02:00:28.970109388 +0900
@@ -81,6 +81,10 @@
 Do not attempt to resolve network addresses (normally
 .Nm
 interprets addresses and attempts to display them as names).
+When
+.Fl n
+is specified more than once, hostnames stored in utmp are attempted to
+resolve to display them as network addresses.
 .El
 .Pp
 If one or more
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:28:57.000000000 +0900
+++ usr.bin/w/w.c	2009-11-26 01:48:42.729602183 +0900
@@ -180,7 +180,7 @@ main(int argc, char *argv[])
 			dropgid = 1;
 			break;
 		case 'n':
-			nflag = 1;
+			nflag += 1;
 			break;
 		case 'f': case 'l': case 's': case 'u': case 'w':
 			warnx("[-flsuw] no longer supported");
@@ -378,12 +378,12 @@ main(int argc, char *argv[])
 			lsin->sin_family = AF_INET;
 			isaddr = 1;
 		}
-		if (!nflag) {
+		if (nflag == 0) {
 			/* Attempt to change an IP address into a name */
 			if (isaddr && realhostname_sa(fn, sizeof(fn), sa,
 			    sa->sa_len) == HOSTNAME_FOUND)
 				p = fn;
-		} else if (!isaddr) {
+		} else if (!isaddr && nflag > 1) {
 			/*
 			 * If a host has only one A/AAAA RR, change a
 			 * name into an IP address

Sincerely,

--
Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan
ume at mahoroba.org  ume@{,jp.}FreeBSD.org
http://www.imasy.org/~ume/


More information about the svn-src-all mailing list