metasploit-framework/lib/net/dns/rr/ns.rb

69 lines
1.5 KiB
Ruby

# -*- coding: binary -*-
##
#
# Net::DNS::RR::NS
#
# $Id: NS.rb,v 1.8 2006/07/28 07:33:36 bluemonk Exp $
#
##
module Net
module DNS
class RR
#------------------------------------------------------------
# RR type NS
#------------------------------------------------------------
class NS < RR
attr_reader :nsdname
private
def check_name(name)
unless name =~ /(\w\.?)+\s*$/ and name =~ /[a-zA-Z]/
raise RRArgumentError, "NS Domain Name not valid: #{name}"
end
name
end
def build_pack
@nsdname_pack = pack_name(@nsdname)
@rdlength = @nsdname_pack.size
end
def set_type
@type = Net::DNS::RR::Types.new("NS")
end
def get_data
@nsdname_pack
end
def get_inspect
"#@nsdname"
end
def subclass_new_from_hash(args)
if args.has_key? :nsdname
@nsdname = check_name args[:nsdname]
else
raise RRArgumentError, ":nsdname field is mandatory but missing"
end
end
def subclass_new_from_string(str)
@nsdname = check_name(str)
end
def subclass_new_from_binary(data,offset)
@nsdname,offset = dn_expand(data,offset)
return offset
end
end # class NS
end # class RR
end # module DNS
end # module Net