123456789_123456789_123456789_123456789_123456789_

Class: Gem::Resolv::DNS::Resource::IN::SRV

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: Gem::Resolv::DNS::Resource
Defined in: lib/rubygems/vendor/resolv/lib/resolv.rb

Overview

SRV resource record defined in RFC 2782

These records identify the hostname and port that a service is available at.

Constant Summary

::Gem::Resolv::DNS::Resource - Inherited

ClassHash, ClassInsensitiveTypes, ClassValue

Class Method Summary

Instance Attribute Summary

  • #port readonly

    The port on this target host of this service.

  • #priority readonly

    The priority of this target host.

  • #target readonly

    The domain name of the target host.

  • #weight readonly

    A server selection mechanism.

::Gem::Resolv::DNS::Resource - Inherited

#ttl

Remaining Time To Live for this ::Gem::Resolv::DNS::Resource.

Instance Method Summary

Constructor Details

.new(priority, weight, port, target) ⇒ SRV

Create a SRV resource record.

See the documentation for #priority, #weight, #port and #target for #priority, #weight, +port and #target respectively.

[ GitHub ]

  
# File 'lib/rubygems/vendor/resolv/lib/resolv.rb', line 2743

def initialize(priority, weight, port, target)
  @priority = priority.to_int
  @weight = weight.to_int
  @port = port.to_int
  @target = Name.create(target)
end

Class Method Details

.decode_rdata(msg)

This method is for internal use only.
[ GitHub ]

  
# File 'lib/rubygems/vendor/resolv/lib/resolv.rb', line 2792

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 Attribute Details

#port (readonly)

The port on this target host of this service.

The range is 0-65535.

[ GitHub ]

  
# File 'lib/rubygems/vendor/resolv/lib/resolv.rb', line 2776

attr_reader :port

#priority (readonly)

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.

[ GitHub ]

  
# File 'lib/rubygems/vendor/resolv/lib/resolv.rb', line 2758

attr_reader :priority

#target (readonly)

The domain name of the target host.

A target of “.” means that the service is decidedly not available at this domain.

[ GitHub ]

  
# File 'lib/rubygems/vendor/resolv/lib/resolv.rb', line 2783

attr_reader :target

#weight (readonly)

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.

[ GitHub ]

  
# File 'lib/rubygems/vendor/resolv/lib/resolv.rb', line 2770

attr_reader :weight

Instance Method Details

#encode_rdata(msg)

This method is for internal use only.
[ GitHub ]

  
# File 'lib/rubygems/vendor/resolv/lib/resolv.rb', line 2785

def encode_rdata(msg) # :nodoc:
  msg.put_pack("n", @priority)
  msg.put_pack("n", @weight)
  msg.put_pack("n", @port)
  msg.put_name(@target, compress: false)
end