class Net::DNS::RR::SOA

Attributes

expire[R]
minimum[R]
mname[R]
refresh[R]
retry[R]
rname[R]
serial[R]

Private Instance Methods

build_pack() click to toggle source
# File lib/net/dns/rr/soa.rb, line 12
def build_pack
  @soa_pack = pack_name(@mname)
  @soa_pack += pack_name(@rname)
  @soa_pack += [@serial, @refresh, @retry, @expire, @minimum].pack("N5")
end
get_data() click to toggle source
# File lib/net/dns/rr/soa.rb, line 18
def get_data
  @soa_pack
end
get_inspect() click to toggle source
# File lib/net/dns/rr/soa.rb, line 22
def get_inspect
  "#{@mname} #{@rname} #{@serial} #{@refresh} #{@retry} #{@expire} #{@minimum}"
end
number?(num) click to toggle source
# File lib/net/dns/rr/soa.rb, line 43
def number?(num)
  if num.is_a?(Integer) && (num > 0)
    true
  else
    raise ArgumentError, "Wrong format field: #{num} not a number or less than zero"
  end
end
set_type() click to toggle source
# File lib/net/dns/rr/soa.rb, line 69
def set_type
  @type = Net::DNS::RR::Types.new("SOA")
end
subclass_new_from_binary(data, offset) click to toggle source
# File lib/net/dns/rr/soa.rb, line 60
def subclass_new_from_binary(data, offset)
  @mname, offset = dn_expand(data, offset)
  @rname, offset = dn_expand(data, offset)
  @serial, @refresh, @retry, @expire, @minimum = data.unpack("@#{offset} N5")
  offset + 5 * Net::DNS::INT32SZ
end
subclass_new_from_hash(args) click to toggle source
# File lib/net/dns/rr/soa.rb, line 26
def subclass_new_from_hash(args)
  if args.key? :rdata
    subclass_new_from_string(args[:rdata])
  else
    %i[mname rname serial refresh retry expire minimum].each do |key|
      raise ArgumentError, "Missing field :#{key}" unless args.key? key
    end
    @mname = args[:mname] if valid? args[:mname]
    @rname = args[:rname] if valid? args[:rname]
    @serial = args[:serial] if number? args[:serial]
    @refresh = args[:refresh] if number? args[:refresh]
    @retry = args[:retry] if number? args[:retry]
    @expire = args[:expire] if number? args[:expire]
    @minimum = args[:minimum] if number? args[:minimum]
  end
end
subclass_new_from_string(str) click to toggle source
# File lib/net/dns/rr/soa.rb, line 51
def subclass_new_from_string(str)
  mname, rname, serial, refresh, ret, expire, minimum = str.strip.split(" ")
  @mname = mname if valid? mname
  @rname = rname if valid? rname
  @serial, @refresh, @retry, @expire, @minimum = [serial, refresh, ret, expire, minimum].collect do |i|
    i.to_i if valid? i.to_i
  end
end