Module Name: src Committed By: dholland Date: Tue Jun 10 17:19:22 UTC 2014
Modified Files: src/usr.sbin/ypbind: ypbind.c Log Message: Instead of using magic numbers in what looks like a boolean (dom_alive), create a state enumeration (domainstates) and use it instead. Instead of three states (new, alive, and, effectively, 'troubled') go to five: new, alive, pinging, lost, and dead. Domains start in the NEW state. When we get a reply from a server, the state goes to ALIVE. The state is set to PINGING when we ping the server (once a minute normally) and if the ping times out, it goes to LOST. If we stay lost for a minute, go to DEAD, and in DEAD, do exponential backoff of nag_servers calls. Getting rid of the broken logic attached to the 'troubled' state fixes PR 15355 (ypbind defeats disk idle spindown) -- it will now only rewrite the binding file when the binding changes. Also, fix the HEURISTIC code so it doesn't trigger except in ALIVE state. I think this was the source of a lot of the spamming behavior seen in PR 32519, which is now fixed. Might also fix PR 23135 (broadcast ypbind sometimes fails to find servers). To generate a diff of this commit: cvs rdiff -u -r1.95 -r1.96 src/usr.sbin/ypbind/ypbind.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.