Date: Sun, 4 Aug 1996 15:13:07 -0700 (PDT) From: Bill Paul <wpaul> To: CVS-committers, cvs-all, cvs-usrsbin Subject: cvs commit: src/usr.sbin/rpc.yppasswdd yppasswdd_server.c Message-ID: <199608042213.PAA27388@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
wpaul 96/08/04 15:13:07 Modified: usr.sbin/rpc.yppasswdd yppasswdd_server.c Log: Fix a couple of bogons. The first two were brought to my attention by Peter Wemm: - In yppasswdproc_update_1_svc(), I wasn't paying attention and put a couple of lines of code _after_ a return() instead of before. (*blush*) - The removal of certain temp files didn't always work (this showed up mostly if you were using /etc/master.passwd as your NIS passwd template instead of /var/yp/master.passwd). This is because the whole temp file creation mechanism I was using was tragically broken (you can't rename across filesystems). This problem I found myself: - If you have a very large password database (30,000 or more entries), there can be a delay of several seconds while pw_copy() copies the ASCII template file and subsitutes in the modified/new entry. During this time, the clnt_udp() code in the RPC library may get impatient and retry its request. This will get queued at the server and be treated as a second request. By then the password change will have been completed and the second request will fail (the old password is no longer valid). To attempt to fix this, we save the IP address and port of each request and ignore any subsequent requests from the same IP and same port that arrive within five minutes of each other. Revision Changes Path 1.7 +36 -9 src/usr.sbin/rpc.yppasswdd/yppasswdd_server.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199608042213.PAA27388>