Class: SPF::Mech::Include
Constant Summary collapse
- NAME =
'include'
Constants inherited from SPF::Mech
DEFAULT_QUALIFIER, EXPLANATION_TEMPLATES_BY_RESULT_CODE, NAME_PATTERN, QUALIFIER_PATTERN
Constants inherited from Term
Term::DOMAIN_END_PATTERN, Term::DOMAIN_SPEC_PATTERN, Term::HEXWORD_PATTERN, Term::IPV4_ADDRESS_PATTERN, Term::IPV6_ADDRESS_PATTERN, Term::MACRO_DELIMITER, Term::MACRO_EXPAND_PATTERN, Term::MACRO_LITERAL_PATTERN, Term::MACRO_STRING_PATTERN, Term::MACRO_TRANSFORMERS_PATTERN, Term::NAME_PATTERN, Term::QNUM_PATTERN, Term::TOPLABEL_PATTERN, Term::TWO_HEXWORDS_OR_IPV4_ADDRESS_PATTERN
Instance Attribute Summary
Attributes inherited from Term
#domain_spec, #errors, #ip_address, #ip_netblocks, #ip_network, #ipv4_prefix_length, #ipv6_prefix_length, #raw_params, #record_domain
Instance Method Summary collapse
- #intitialize(options = {}) ⇒ Object
- #match(server, request, want_result = true) ⇒ Object
- #nested_record(server = nil, request = nil, loose_match = false) ⇒ Object
- #params ⇒ Object
- #parse_params(required = true) ⇒ Object
Methods inherited from SPF::Mech
#default_ipv4_prefix_length, #default_ipv6_prefix_length, #explain, #explanation_template, #initialize, #match_in_domain, #parse, #parse_end, #parse_name, #parse_qualifier, #qualifier, #to_s
Methods inherited from Term
#domain, #error, #initialize, new_from_string, #parse_domain_spec, #parse_ipv4_address, #parse_ipv4_ipv6_prefix_lengths, #parse_ipv4_network, #parse_ipv4_prefix_length, #parse_ipv6_address, #parse_ipv6_network, #parse_ipv6_prefix_length, #text
Constructor Details
This class inherits a constructor from SPF::Mech
Instance Method Details
#intitialize(options = {}) ⇒ Object
532 533 534 535 |
# File 'lib/spf/model.rb', line 532 def intitialize( = {}) super() @nested_record = nil end |
#match(server, request, want_result = true) ⇒ Object
546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 |
# File 'lib/spf/model.rb', line 546 def match(server, request, want_result = true) server.count_dns_interactive_term(request) # Create sub-request with mutated authority domain: = self.domain(server, request) sub_request = request.new_sub_request({:authority_domain => }) # Process sub-request: result = server.process(sub_request) # Translate result of sub-request (RFC 4408, 5.9): return false unless want_result return true if SPF::Result::Pass === result return false if SPF::Result::Fail === result or SPF::Result::SoftFail === result or SPF::Result::Neutral === result server.throw_result(:permerror, request, "Include domain '#{}' has no applicable sender policy") if SPF::Result::None === result # Propagate any other results (including {Perm,Temp}Error) as-is: raise result end |
#nested_record(server = nil, request = nil, loose_match = false) ⇒ Object
576 577 578 579 580 581 582 |
# File 'lib/spf/model.rb', line 576 def nested_record(server=nil, request=nil, loose_match = false) return @nested_record if @nested_record return nil unless server and request = self.domain(server, request) sub_request = request.new_sub_request({:authority_domain => }) return @nested_record = server.select_record(sub_request, loose_match) end |
#params ⇒ Object
542 543 544 |
# File 'lib/spf/model.rb', line 542 def params return @domain_spec ? @domain_spec.to_s : nil end |
#parse_params(required = true) ⇒ Object
537 538 539 540 |
# File 'lib/spf/model.rb', line 537 def parse_params(required = true) @raw_params = @parse_text.dup self.parse_domain_spec(required) end |