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")
  @rdlength = @soa_pack.size
end
get_data() click to toggle source
# File lib/net/dns/rr/soa.rb, line 20
def get_data
  @soa_pack
end
get_inspect() click to toggle source
# File lib/net/dns/rr/soa.rb, line 24
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 45
def number?(num)
  if num.kind_of? Integer and num > 0
    true
  else
    false
  end
end
rname?(name) click to toggle source
# File lib/net/dns/rr/soa.rb, line 53
def rname?(name)
  mailbox, domain = name.split(/(?<!\\)\./, 2)
  return true if valid? domain
  return false
end
set_type() click to toggle source
# File lib/net/dns/rr/soa.rb, line 77
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 68
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 28
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 rname? 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 59
def subclass_new_from_string(str)
  mname,rname,serial,refresh,ret,expire,minimum = str.strip.split(" ")
  @mname = mname if valid? mname
  @rname = rname if rname? rname
  @serial,@refresh,@retry,@expire,@minimum = [serial,refresh,ret,expire,minimum].collect do |i|
    i.to_i if number? i.to_i
  end
end