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 13
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 19
def get_data
  @soa_pack
end
get_inspect() click to toggle source
# File lib/net/dns/rr/soa.rb, line 23
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 44
def number?(num)
  if num.kind_of? Integer and 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 70
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 61
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")
  return offset + 5*Net::DNS::INT32SZ
end
subclass_new_from_hash(args) click to toggle source
# File lib/net/dns/rr/soa.rb, line 27
def subclass_new_from_hash(args)
  if args.has_key? :rdata
    subclass_new_from_string(args[:rdata])
  else
    [:mname,:rname,:serial,:refresh,:retry,:expire,:minimum].each do |key|
      raise ArgumentError, "Missing field :#{key}" unless args.has_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 52
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