Class: Resolv::DNS::Resource::IN::SRV
- Inherits:
-
Resolv::DNS::Resource
- Object
- Query
- Resolv::DNS::Resource
- Resolv::DNS::Resource::IN::SRV
- Defined in:
- lib/net/dns/resolv.rb
Overview
SRV resource record defined in RFC 2782
These records identify the hostname and port that a service is available at.
The format is:
_Service._Proto.Name TTL Class SRV Priority Weight Port Target
The fields specific to SRV are defined in RFC 2782 as meaning:
-
priority
The priority of this target host. A client MUST attempt to contact the target host with the lowest-numbered priority it can reach; target hosts with the same priority SHOULD be tried in an order defined by the weight field. The range is 0-65535. Note that it is not widely implemented and is commonly set to zero. -
weight
A server selection mechanism. The weight field specifies a relative weight for entries with the same priority. Larger weights SHOULD be given a proportionately higher probability of being selected. The range of this number is 0-65535. Domain administrators SHOULD use Weight 0 when there isn’t any server selection to do, to make the RR easier to read for humans (less noisy). Note that it is not widely implemented and should be set to zero. -
port
The port on this target host of this service. The range is 0- 65535. -
target
The domain name of the target host. A target of “.” means that the service is decidedly not available at this domain.
Constant Summary
Constants inherited from Resolv::DNS::Resource
ClassHash, ClassInsensitiveTypes, ClassValue
Instance Attribute Summary collapse
-
#port ⇒ Object
readonly
Returns the value of attribute port.
-
#priority ⇒ Object
readonly
Returns the value of attribute priority.
-
#target ⇒ Object
readonly
Returns the value of attribute target.
-
#weight ⇒ Object
readonly
Returns the value of attribute weight.
Class Method Summary collapse
-
.decode_rdata(msg) ⇒ Object
:nodoc:.
Instance Method Summary collapse
-
#encode_rdata(msg) ⇒ Object
:nodoc:.
-
#initialize(priority, weight, port, target) ⇒ SRV
constructor
Create a SRV resource record.
Methods inherited from Resolv::DNS::Resource
Constructor Details
#initialize(priority, weight, port, target) ⇒ SRV
Create a SRV resource record.
TODO - switch args to (target, port, priority = 0, weight = 0)? It would be more convenient to use.
1808 1809 1810 1811 1812 1813 |
# File 'lib/net/dns/resolv.rb', line 1808 def initialize(priority, weight, port, target) @priority = priority.to_int @weight = weight.to_int @port = port.to_int @target = Name.create(target) end |
Instance Attribute Details
#port ⇒ Object (readonly)
Returns the value of attribute port.
1815 1816 1817 |
# File 'lib/net/dns/resolv.rb', line 1815 def port @port end |
#priority ⇒ Object (readonly)
Returns the value of attribute priority.
1815 1816 1817 |
# File 'lib/net/dns/resolv.rb', line 1815 def priority @priority end |
#target ⇒ Object (readonly)
Returns the value of attribute target.
1815 1816 1817 |
# File 'lib/net/dns/resolv.rb', line 1815 def target @target end |
#weight ⇒ Object (readonly)
Returns the value of attribute weight.
1815 1816 1817 |
# File 'lib/net/dns/resolv.rb', line 1815 def weight @weight end |
Class Method Details
.decode_rdata(msg) ⇒ Object
:nodoc:
1824 1825 1826 1827 1828 1829 1830 |
# File 'lib/net/dns/resolv.rb', line 1824 def self.decode_rdata(msg) # :nodoc: priority, = msg.get_unpack("n") weight, = msg.get_unpack("n") port, = msg.get_unpack("n") target = msg.get_name return self.new(priority, weight, port, target) end |
Instance Method Details
#encode_rdata(msg) ⇒ Object
:nodoc:
1817 1818 1819 1820 1821 1822 |
# File 'lib/net/dns/resolv.rb', line 1817 def encode_rdata(msg) # :nodoc: msg.put_pack("n", @priority) msg.put_pack("n", @weight) msg.put_pack("n", @port) msg.put_name(@target) end |