Hi,

>>>>> On Wed, 25 Nov 2009 08:31:03 -0800
>>>>> Juli Mallett <jmall...@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
u...@mahoroba.org  u...@{,jp.}FreeBSD.org
http://www.imasy.org/~ume/
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to