class Net::DNS::RR::HINFO

System Information Record (HINFO)

Class for DNS HINFO resource records.

Allows definition of the Hardware type and Operating System (OS) in use at a host. For security reasons these records are rarely used on public servers. If a space exists in the field it must be enclosed in quotes. Single space between CPU and OS parameters.

Public Instance Methods

cpu() click to toggle source

Gets the CPU value.

Returns a String.

# File lib/net/dns/rr/hinfo.rb, line 20
def cpu
  @cpu
end
os() click to toggle source

Gets the OS value.

Returns a String.

# File lib/net/dns/rr/hinfo.rb, line 27
def os
  @os
end
to_a() click to toggle source

Gets a list of all the attributes for this record.

Returns an Array of values.

# File lib/net/dns/rr/hinfo.rb, line 43
def to_a
  [nil, nil, cls.to_s, type.to_s, value]
end
value() click to toggle source

Gets the standardized value for this record, represented by the value of cpu and os.

Returns a String.

# File lib/net/dns/rr/hinfo.rb, line 35
def value
  %Q{"#{cpu}" "#{os}"}
end

Private Instance Methods

build_pack() click to toggle source
# File lib/net/dns/rr/hinfo.rb, line 93
def build_pack
  @hinfo_pack  = ""
  @hinfo_pack += [cpu.size].pack("C") + cpu
  @hinfo_pack += [os.size ].pack("C") + os
  @rdlength = @hinfo_pack.size
end
check_hinfo(input) click to toggle source
# File lib/net/dns/rr/hinfo.rb, line 85
def check_hinfo(input)
  if input.to_s.strip =~ /^(?:["']?(.*?)["']?)\s+(?:["']?(.*?)["']?)$/
    [$1, $2]
  else
    raise ArgumentError, "Invalid HINFO Section `#{input}'"
  end
end
get_data() click to toggle source
# File lib/net/dns/rr/hinfo.rb, line 100
def get_data
  @hinfo_pack
end
get_inspect() click to toggle source
# File lib/net/dns/rr/hinfo.rb, line 80
def get_inspect
  value
end
set_type() click to toggle source
# File lib/net/dns/rr/hinfo.rb, line 76
def set_type
  @type = Net::DNS::RR::Types.new("HINFO")
end
subclass_new_from_binary(data, offset) click to toggle source
# File lib/net/dns/rr/hinfo.rb, line 63
def subclass_new_from_binary(data, offset)
  len  = data.unpack("@#{offset} C").first
  offset += 1
  @cpu = data[offset..(offset + len)]
  offset += len
  
  len  = data.unpack("@#{offset} C").first
  offset += 1
  @os  = data[offset..(offset + len)]
  offset += len
end
subclass_new_from_hash(options) click to toggle source
# File lib/net/dns/rr/hinfo.rb, line 50
def subclass_new_from_hash(options)
  if options.has_key?(:cpu) && options.has_key?(:os)
    @cpu = options[:cpu]
    @os  = options[:os]
  else
    raise ArgumentError, ":cpu and :os fields are mandatory"
  end
end
subclass_new_from_string(str) click to toggle source
# File lib/net/dns/rr/hinfo.rb, line 59
def subclass_new_from_string(str)
  @cpu, @os = check_hinfo(str)
end