spf.go
func (s *SPF) incDNSLookupCount(amt int) error {
	s.dnsLookupCount = s.dnsLookupCount + amt
	if s.dnsLookupCount > DNSLookupLimit {
		return &PermError{fmt.Sprintf("Domain %v exceeds max amount of dns queries: %v", s.Domain, DNSLookupLimit)}
	}
	return nil
}
func (s *SPF) incDNSLookupCount(amt int) error {
	s.dnsLookupCount = s.dnsLookupCount + amt
	if s.dnsLookupCount > DNSLookupLimit {
		return &PermError{fmt.Sprintf("Domain %v exceeds max amount of dns queries: %v", s.Domain, DNSLookupLimit)}
	}
	return nil
}
/*
RFC 7208:

4.6.4.  DNS Lookup Limits

   Some mechanisms and modifiers (collectively, "terms") cause DNS
   queries at the time of evaluation, and some do not.  The following
   terms cause DNS queries: the "include", "a", "mx", "ptr", and
   "exists" mechanisms, and the "redirect" modifier.  SPF
   implementations MUST limit the total number of those terms to 10
   during SPF evaluation, to avoid unreasonable load on the DNS.  If
   this limit is exceeded, the implementation MUST return "permerror".
   The other terms -- the "all", "ip4", and "ip6" mechanisms, and the
   "exp" modifier -- do not cause DNS queries at the time of SPF
   evaluation (the "exp" modifier only causes a lookup at a later time),
   and their use is not subject to this limit.
*/