freebsd-skq/lib
wpaul 9b1ee02f17 Submitted by: Sebastian Strollow
Obtained from: Casper H. Dik (by vay of Usenet)

Small patch to help improve NIS rebinding times (among other things):


>From: casper@fwi.uva.nl (Casper H.S. Dik)
>Newsgroups: comp.sys.sun.misc,comp.sys.sun.admin
>Subject: FIX for slow rebinding of NIS.
>Summary: a small change in libc makes life with NIS a lot easier.
>Message-ID: <1992Jan17.173905.11727@fwi.uva.nl>
>Date: 17 Jan 92 17:39:05 GMT
>Sender: news@fwi.uva.nl
>Organization: FWI, University of Amsterdam
>Lines: 138
>Nntp-Posting-Host: halo.fwi.uva.nl

Have you been plagued by long waits when your NIS server is rebooted?
READ ON!

Sun has a patch, but the README says:

********************* WARNING ******************************

  This is a new version of ypbind that never uses the NIS
  binding file to cache the servers binding. This will have
  the effect of fixing the current symptom. However, it might
  degrade the overall performance of the system when the
  server is available. This is most likely to happen on an
  overloaded server, which will cause the network to produce
  a broadcast storm.

*************************************************************

Therefor, I have produced another fix.

o What goes wrong.

When the NIS server is rebooted, ypserv will obtain different ports
to listen for RPC requests. All clients will continue to use the old
binding they obtained earlier. The NIS server will send ICMP dst unreachable
messages for the RPC requests that arrive at the old port. These ICMPs
are dropped on the floor and the client code will continue sending the
requests until the timer has expired. The small fix at the end of this
message will pick up these ICMP messages and deliver them to the RPC layer.

o Before and after.

I've tested this on some machines and this is the result:

	(kill and restart ypserv on the server)

original% time ypmatch user passwd
user:....
0.040u 0.090s 2:35.64 0.0% 0+126k 0+0io 0pf+0w (155 seconds elapsed time)

fixedhost% time ypmatch user passwd
user:....
0.050u 0.050s 0:10.20 0.9% 0+136k 0+0io 0pf+0w (10 seconds elapsed time)

Rebinding is almost instantaneous.

o Other benefits.
	RPC calls that use UDP as transport will no longer time out but
	will abort much sooner. (E.g., the remote host is unreachable or
	111/udp is filtered by an intermediate router)
1995-04-02 20:05:20 +00:00
..
csu/i386 Install the dlopen.3 manpage. 1995-03-30 06:40:31 +00:00
libc Submitted by: Sebastian Strollow 1995-04-02 20:05:20 +00:00
libcom_err Don't call _doprnt, which doesn't exist; use vfprintf. 1995-01-23 22:53:12 +00:00
libcompat add a couple of missing #include lines 1995-03-19 07:00:52 +00:00
libcrypt Install shared libraries in ${DESTDIR}${SHLIBDIR} instead of in 1994-11-14 06:44:45 +00:00
libcurses Use __tty_fileno instead of STDERR_FILENO when detecting window size 1995-03-28 22:20:19 +00:00
libedit Add LDADD+= -ltermcap 1994-10-12 02:06:02 +00:00
libf2c Remove z_abs. It is already in libm.a 1994-11-11 12:58:12 +00:00
libF77 Library for f2c (part 2 of 2) 1994-10-26 18:17:41 +00:00
libforms Tweak a few things just to show how form traversal might work fully. 1995-03-28 10:42:09 +00:00
libI77 Library for f2c. (part 1 of 2) 1994-10-26 18:15:35 +00:00
libkvm Comment out declaration of kvm_uread until it can be fixed correctly. 1995-03-20 16:35:11 +00:00
libm Declare huge and tiny as volatile so that gcc doesn't evaluate huge*huge 1994-09-08 11:19:43 +00:00
libmd Clean a bunch of -Wall warnings. 1995-02-24 08:51:34 +00:00
libmytinfo Remove duplicates: parm rindex & scroll right 1995-03-27 05:13:31 +00:00
libncurses Fix bug using CSR for partial scrolling 1995-03-27 01:19:14 +00:00
libpam/modules In the non-PARANOID case, make sure to set `notickets' to 0 sothat login.c 1995-01-20 23:07:10 +00:00
libpcap Fix typo: pcap.h.h 1995-02-23 18:47:06 +00:00
libresolv BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00
librpc Make up for the fact that rpc headers are now installed from include. 1994-08-05 01:59:40 +00:00
librpcsvc If we are going to set the OBJS target, don't add to the old target. This 1995-03-04 17:39:24 +00:00
libscsi Clean up handling of unspecified names. Clarify man page. 1995-01-26 23:48:41 +00:00
libskey Change strtok() to strsep(), strtok() usage is depricated 1995-03-24 17:27:22 +00:00
libss Remove private mkdir for /usr/include/ss, no handled by mtree. 1995-03-18 08:34:42 +00:00
libtelnet The big crypt removal - make libtelnet exportable. 1994-08-12 22:41:29 +00:00
libterm Correct the man page extent. 1994-08-08 19:26:23 +00:00
libtermcap Continue of previous fix: eliminate backslashes too. 1995-03-26 00:47:02 +00:00
libutil Fix suspended vipw hangs 1995-03-09 21:53:12 +00:00
liby BSD 4.4 Lite Lib Sources 1994-05-27 05:00:24 +00:00
msun Obtained from: NetBSD 1995-03-08 01:41:40 +00:00
ncurses/ncurses Add missing lib_window.c to SRCS 1995-02-13 17:23:18 +00:00
rpcsvc Makefile to build librpcsvc. (All sources automatically generated.) 1994-08-07 23:21:08 +00:00
Makefile msun becomes the default -lm the right way now. 1995-03-21 02:52:05 +00:00
Makefile.inc From 1.1.5: define default shared library versions. For 2.0, use version 1994-08-04 22:44:00 +00:00