Class: Net::DNS::RR::RT
- Inherits:
-
Net::DNS::RR
- Object
- Net::DNS::RR
- Net::DNS::RR::RT
- Defined in:
- lib/Net/DNS/RR/RT.rb
Overview
NAME
Net::DNS::RR::RT - DNS RT resource record
DESCRIPTION
Class for DNS Route Through (RT) resource records.
COPYRIGHT
Copyright © 1997-2002 Michael Fuhr.
Portions Copyright © 2002-2004 Chris Reinhardt. Portions Copyright © 2005 Olaf Kolkman NLnet Labs. Ruby version Copyright © 2006 AlexD, Nominet UK.
All rights reserved. This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
Net::DNS, Net::DNS::Resolver, Net::DNS::Packet, Net::DNS::Header, Net::DNS::Question, Net::DNS::RR, RFC 1183 Section 3.3
Constant Summary
Constants inherited from Net::DNS::RR
Instance Attribute Summary collapse
-
#intermediate ⇒ Object
Returns the domain name of the intermediate host.
-
#preference ⇒ Object
Returns the preference for this route.
Attributes inherited from Net::DNS::RR
#name, #rdata, #rdlength, #rrclass, #ttl, #type
Instance Method Summary collapse
- #_canonicalRdata(packet, offset) ⇒ Object
- #init_rrsort_func ⇒ Object
- #new_from_data(data, offset) ⇒ Object
- #new_from_hash(values) ⇒ Object
- #new_from_string(string) ⇒ Object
- #rdatastr ⇒ Object
- #rr_rdata(packet, offset) ⇒ Object
Methods inherited from Net::DNS::RR
#_canonicaldata, _get_subclass, #_name2wire, _name2wire, build_regex, create, #create_rrsort_func, #data, #get_rrsort_func, #init, #inspect, new_from_data, new_from_hash, new_from_string, #set_rrsort_func
Instance Attribute Details
#intermediate ⇒ Object
Returns the domain name of the intermediate host.
print "intermediate = ", rr.intermediate, "\n"
53 54 55 |
# File 'lib/Net/DNS/RR/RT.rb', line 53 def intermediate @intermediate end |
#preference ⇒ Object
Returns the preference for this route.
print "preference = ", rr.preference, "\n"
48 49 50 |
# File 'lib/Net/DNS/RR/RT.rb', line 48 def preference @preference end |
Instance Method Details
#_canonicalRdata(packet, offset) ⇒ Object
102 103 104 105 106 107 108 109 110 111 |
# File 'lib/Net/DNS/RR/RT.rb', line 102 def _canonicalRdata(packet, offset) rdata = ""; if (defined?@preference) rdata += [@preference].pack("n"); rdata += _name2wire(@intermediate); end return rdata; end |
#init_rrsort_func ⇒ Object
54 55 56 57 58 59 |
# File 'lib/Net/DNS/RR/RT.rb', line 54 def init_rrsort_func # Highest preference sorted first. set_rrsort_func("preference", Proc.new { |a,b| a.preference <=> b.preference } ) set_rrsort_func("default_sort", get_rrsort_func("preference") ); end |
#new_from_data(data, offset) ⇒ Object
61 62 63 64 65 66 67 68 |
# File 'lib/Net/DNS/RR/RT.rb', line 61 def new_from_data(data, offset) if (@rdlength > 0) @preference = data.unpack("\@#{offset} n")[0]; offset += Net::DNS::INT16SZ; @intermediate = Net::DNS::Packet::(data, offset)[0]; end end |
#new_from_hash(values) ⇒ Object
70 71 72 73 74 75 76 77 |
# File 'lib/Net/DNS/RR/RT.rb', line 70 def new_from_hash(values) if values.has_key?(:intermediate) @intermediate = values[:intermediate] end if values.has_key?(:preference) @preference = values[:preference] end end |
#new_from_string(string) ⇒ Object
79 80 81 82 83 84 85 |
# File 'lib/Net/DNS/RR/RT.rb', line 79 def new_from_string(string) if (string && (string =~ /^(\d+)\s+(\S+)$/)) @preference = $1; @intermediate = $2; @intermediate.sub!(/\.+$/, ""); end end |
#rdatastr ⇒ Object
87 88 89 |
# File 'lib/Net/DNS/RR/RT.rb', line 87 def rdatastr return @preference ? "#{@preference} #{@intermediate}." : ''; end |
#rr_rdata(packet, offset) ⇒ Object
91 92 93 94 95 96 97 98 99 100 |
# File 'lib/Net/DNS/RR/RT.rb', line 91 def rr_rdata(packet, offset) rdata = ""; if (defined?@preference) rdata += [@preference].pack("n"); rdata += packet.dn_comp(@intermediate, offset + rdata.length); end return rdata; end |