Tighten DNS COOKIE response handling
Fallback to TCP when we have already seen a DNS COOKIE response from the given address and don't have one in this UDP response. This could be a server that has turned off DNS COOKIE support, a misconfigured anycast server with partial DNS COOKIE support, or a spoofed response. Falling back to TCP is the correct behaviour in all 3 cases.
Future work, once the percentage of DNS COOKIE aware servers increases enough, will be to fallback to TCP on all UDP responses w/o DNS COOKIE options.
Edited by Mark Andrews