class SPF::Mech::SPF::Mech::Include

Constants

NAME

Public Instance Methods

intitialize(options = {}) click to toggle source
Calls superclass method
# File lib/spf/model.rb, line 532
def intitialize(options = {})
  super(options)
  @nested_record = nil
end
match(server, request, want_result = true) click to toggle source
# 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:
  authority_domain = self.domain(server, request)
  sub_request = request.new_sub_request({:authority_domain => 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 '#{authority_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) click to toggle source
# 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
  authority_domain = self.domain(server, request)
  sub_request = request.new_sub_request({:authority_domain => authority_domain})
  return @nested_record = server.select_record(sub_request, loose_match)
end
params() click to toggle source
# File lib/spf/model.rb, line 542
def params
  return @domain_spec ? @domain_spec.to_s : nil
end
parse_params(required = true) click to toggle source
# File lib/spf/model.rb, line 537
def parse_params(required = true)
  @raw_params = @parse_text.dup
  self.parse_domain_spec(required)
end