<rdar://problem/7252523> The solution to the problem consists of many parts.
authormparthasarathy@apple.com <mparthasarathy@apple.com@214c2c4a-bf3b-4dcf-9390-e4dd3010487d>
Fri, 25 Sep 2009 23:18:47 +0000 (23:18 +0000)
committermparthasarathy@apple.com <mparthasarathy@apple.com@214c2c4a-bf3b-4dcf-9390-e4dd3010487d>
Fri, 25 Sep 2009 23:18:47 +0000 (23:18 +0000)
commit8df403087a213bf101a8ff8e2d1acf259d93e9f4
tree4adfb6b9bcf6b10a105ddb30724e8368873791d5
parent29602988fd94501928e7c0ea08562ab5e985f5d2
<rdar://problem/7252523> The solution to the problem consists of many parts.

1) Now we don't move the server to the end. Instead, it penalizes the server for 60 seconds so that new questions pick a different unpenalized server if any.

2) If all servers are penalized, it picks the one that is least penalized. Also, we don't penalize a server if it fails to respond to PTR queries as this was one of the common things seen with WAB queries.

3)To avoid doing any sort of learning, "-StrictUnicastOrdering" can now be added to the plist which will prevent penalizing servers but then move on with the next server on the list.

git-svn-id: http://svn.macosforge.org/repository/mDNSResponder/trunk@6696 214c2c4a-bf3b-4dcf-9390-e4dd3010487d
mDNSCore/mDNS.c
mDNSCore/mDNSEmbeddedAPI.h
mDNSCore/uDNS.c
mDNSCore/uDNS.h
mDNSMacOSX/daemon.c