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

72 lines
1.5 KiB
Ruby

# -*- coding: binary -*-
##
#
# Net::DNS::RR::PTR
#
# $Id: PTR.rb,v 1.5 2006/07/28 07:33:36 bluemonk Exp $
#
##
module Net
module DNS
class RR
#------------------------------------------------------------
# RR type PTR
#------------------------------------------------------------
class PTR < RR
# Getter for PTR resource
def ptr
@ptrdname.to_s
end
alias_method :ptrdname, :ptr
private
def check_ptr(str)
IPAddr.new str
rescue
raise RRArgumentError, "PTR section not valid"
end
def build_pack
@ptrdname_pack = pack_name(@ptrdname)
@rdlength = @ptrdname_pack.size
end
def set_type
@type = Net::DNS::RR::Types.new("PTR")
end
def get_data
@ptrdname_pack
end
def get_inspect
"#@ptrdname"
end
def subclass_new_from_hash(args)
if args.has_key? :ptrdname or args.has_key? :ptr
@ptrdname = args[0][:ptrdname]
else
raise RRArgumentError, ":ptrdname or :ptr field is mandatory but missing"
end
end
def subclass_new_from_string(str)
@ptrdname = check_ptr(str)
end
def subclass_new_from_binary(data,offset)
@ptrdname,offset = dn_expand(data,offset)
return offset
end
end # class PTR
end # class RR
end # module DNS
end # module Net