Do the following tweaks for negative rdataset handling: * rdataset->rdh_ttl is rdataset->ttl + addrdataset time * During add32(), modify code so that if the header is negative, append it at the end of the LRU list * Don't modify need_headerupdate() * During update_header(), if the header is negative: + If update_header() was called < 1 minute after addrdataset() [which can be determined by rdataset->rdh_ttl vs. rdataset->ttl vs. now], don't update the header. + Otherwise, bring the header to the front of the LRU list as currently done. ---- With these changes, during a random subdomain attack, all these negative answers will stick to the end of the LRU lists (where they'll be cleaned out first) and if a negative answer is actually re-used after a minute, then it'll be moved to the front of the LRU lists (i.e., it won't be cleaned out). We can also remove this second part if we want to be strict - i.e., just let all negative answers get cleaned up first whether they have been recently used or not. Mukund