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

Inherits:
Gem::Resolv::DNS::Resource show all
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 collapse

TypeValue =
33
ClassValue =
IN::ClassValue

Constants inherited from Gem::Resolv::DNS::Resource

ClassHash, ClassInsensitiveTypes

Instance Attribute Summary collapse

Attributes inherited from Gem::Resolv::DNS::Resource

#ttl

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Gem::Resolv::DNS::Resource

#==, #eql?, get_class, #hash

Constructor Details

#initialize(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.



2757
2758
2759
2760
2761
2762
# File 'lib/rubygems/vendor/resolv/lib/resolv.rb', line 2757

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

#portObject (readonly)

The port on this target host of this service.

The range is 0-65535.



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

def port
  @port
end

#priorityObject (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.



2772
2773
2774
# File 'lib/rubygems/vendor/resolv/lib/resolv.rb', line 2772

def priority
  @priority
end

#targetObject (readonly)

The domain name of the target host.

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



2797
2798
2799
# File 'lib/rubygems/vendor/resolv/lib/resolv.rb', line 2797

def target
  @target
end

#weightObject (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.



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

def weight
  @weight
end

Class Method Details

.decode_rdata(msg) ⇒ Object

:nodoc:



2806
2807
2808
2809
2810
2811
2812
# File 'lib/rubygems/vendor/resolv/lib/resolv.rb', line 2806

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:



2799
2800
2801
2802
2803
2804
# File 'lib/rubygems/vendor/resolv/lib/resolv.rb', line 2799

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