summaryrefslogtreecommitdiffstats
path: root/usr.bin/w
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1995-07-18 05:07:02 +0000
committerpeter <peter@FreeBSD.org>1995-07-18 05:07:02 +0000
commitee0afa6a32c52501d5da7a1a227ee663f86cce1c (patch)
tree634909eabc0088402970b635ef9b7031890c18e8 /usr.bin/w
parent5c9cd70426c1c5fe5de1003ced535cafd39b7e34 (diff)
downloadFreeBSD-src-ee0afa6a32c52501d5da7a1a227ee663f86cce1c.zip
FreeBSD-src-ee0afa6a32c52501d5da7a1a227ee663f86cce1c.tar.gz
When 'w' finds an IP address in the ut_host field, it attempts to do
a gethostbyname() on it. That can take a long time... (especially if the reason the IP address is in there in the first place is because login/rlogind/telnetd couldn't find it either....) This patch reduces the gethostbyaddr lookup time to 2 seconds, the idea being that if the local nameserver knows the answer, it'll answer within that time, otherwise we dont care... :-) This change doesn't do anything about whether or not w should do this in the first place, but at least it will make the current behavior less painful. Reviewed by: David Greenman
Diffstat (limited to 'usr.bin/w')
-rw-r--r--usr.bin/w/w.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/usr.bin/w/w.c b/usr.bin/w/w.c
index 685057d..6e006ad 100644
--- a/usr.bin/w/w.c
+++ b/usr.bin/w/w.c
@@ -77,6 +77,9 @@ static char sccsid[] = "@(#)w.c 8.4 (Berkeley) 4/16/94";
#include <utmp.h>
#include <vis.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+
#include "extern.h"
struct timeval boottime;
@@ -169,6 +172,11 @@ main(argc, argv)
argc -= optind;
argv += optind;
+ if (!(_res.options & RES_INIT))
+ res_init();
+ _res.retrans = 2; /* resolver timeout to 2 seconds per try */
+ _res.retry = 1; /* only try once.. */
+
if ((kd = kvm_openfiles(nlistf, memf, NULL, O_RDONLY, errbuf)) == NULL)
errx(1, "%s", errbuf);
OpenPOWER on IntegriCloud