In Files

  • resolv.rb


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 should be 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.





Public Class Methods

decode_rdata(msg) click to toggle source
               # File resolv.rb, line 1747
def self.decode_rdata(msg)
  priority, = msg.get_unpack("n")
  weight,   = msg.get_unpack("n")
  port,     = msg.get_unpack("n")
  target    = msg.get_name
  return, weight, port, target)
new(priority, weight, port, target) click to toggle source

Create a SRV resource record.

               # File resolv.rb, line 1731
def initialize(priority, weight, port, target)
  @priority = priority.to_int
  @weight = weight.to_int
  @port = port.to_int
  @target = Name.create(target)

Public Instance Methods

encode_rdata(msg) click to toggle source
               # File resolv.rb, line 1740
def encode_rdata(msg)
  msg.put_pack("n", @priority)
  msg.put_pack("n", @weight)
  msg.put_pack("n", @port)

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit