class Net::DNS::RR::MX
Mail Exchange Record (MX
)¶ ↑
Class for DNS
MX
resource records.
A
MX
record specifies the name and relative preference of mail servers (mail exchangers in the DNS
jargon) for the zone. The MX
RR
is used by SMTP (Mail) Agents to route mail for the domain.
Attributes
exchange[R]
Gets the exchange value.
Returns a String.
preference[R]
Gets the preference value.
Returns an Integer.
Public Instance Methods
value()
click to toggle source
Gets the standardized value for this record, represented by the value of preference
and exchange
.
Returns a String.
# File lib/net/dns/rr/mx.rb, line 28 def value "#{preference} #{exchange}" end
Private Instance Methods
build_pack()
click to toggle source
# File lib/net/dns/rr/mx.rb, line 71 def build_pack @mx_pack = [@preference].pack("n") + pack_name(@exchange) @rdlength = @mx_pack.size end
check_mx(input)
click to toggle source
# File lib/net/dns/rr/mx.rb, line 62 def check_mx(input) str = input.to_s unless str.strip =~ /^(\d+)\s+(\S+)$/ raise ArgumentError, "Invalid MX section `#{str}'" end [Regexp.last_match(1).to_i, Regexp.last_match(2)] end
get_data()
click to toggle source
# File lib/net/dns/rr/mx.rb, line 76 def get_data @mx_pack end
get_inspect()
click to toggle source
# File lib/net/dns/rr/mx.rb, line 58 def get_inspect value end
set_type()
click to toggle source
# File lib/net/dns/rr/mx.rb, line 54 def set_type @type = Net::DNS::RR::Types.new("MX") end
subclass_new_from_binary(data, offset)
click to toggle source
# File lib/net/dns/rr/mx.rb, line 47 def subclass_new_from_binary(data, offset) @preference = data.unpack("@#{offset} n")[0] offset += 2 @exchange, offset = dn_expand(data, offset) offset end
subclass_new_from_hash(options)
click to toggle source
# File lib/net/dns/rr/mx.rb, line 34 def subclass_new_from_hash(options) if options.key?(:preference) && options.key?(:exchange) @preference = options[:preference].to_i @exchange = options[:exchange] else raise ArgumentError, ":preference and :exchange fields are mandatory" end end
subclass_new_from_string(str)
click to toggle source
# File lib/net/dns/rr/mx.rb, line 43 def subclass_new_from_string(str) @preference, @exchange = check_mx(str) end