diff options
author | peter <peter@FreeBSD.org> | 1995-07-18 05:07:02 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1995-07-18 05:07:02 +0000 |
commit | ee0afa6a32c52501d5da7a1a227ee663f86cce1c (patch) | |
tree | 634909eabc0088402970b635ef9b7031890c18e8 /usr.bin/w/w.c | |
parent | 5c9cd70426c1c5fe5de1003ced535cafd39b7e34 (diff) | |
download | FreeBSD-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/w.c')
-rw-r--r-- | usr.bin/w/w.c | 8 |
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); |