class SPF::Mech::SPF::Mech::MX
Constants
- NAME
Public Instance Methods
match(server, request, want_result = true)
click to toggle source
# File lib/spf/model.rb, line 610 def match(server, request, want_result = true) server.count_dns_interactive_term(request) target_domain = self.domain(server, request) mx_packet = server.dns_lookup(target_domain, 'MX') mx_rrs = (mx_packet or server.count_void_dns_lookup(request)) # Respect the MX mechanism lookups limit (RFC 4408, 5.4/3/4): if server.max_name_lookups_per_mx_mech mx_rrs = mx_rrs[0, server.max_name_lookups_per_mx_mech] end # TODO: Use A records from packet's "additional" section? Probably not. # Check MX records: mx_rrs.each do |rr| if Resolv::DNS::Resource::IN::MX === rr return true if self.match_in_domain(server, request, rr.exchange) else # Unexpected RR type. # TODO: Generate debug info or ignore silently. end end return false end
params()
click to toggle source
# File lib/spf/model.rb, line 596 def params params = '' if @domain_spec params += @domain_spec.to_s end if @ipv4_prefix_length and @ipv4_prefix_length != self.default_ipv4_prefix_length params += '/' + @ipv4_prefix_length.to_s end if @ipv6_prefix_length and @ipv6_prefix_length != self.default_ipv6_prefix_length params += '//' + @ipv6_prefix_length.to_s end return params end
parse_params(required = true)
click to toggle source
# File lib/spf/model.rb, line 590 def parse_params(required = true) @raw_params = @parse_text.dup self.parse_domain_spec self.parse_ipv4_ipv6_prefix_lengths end