class Lib::DHCP::Option122::SubOption::Option6

Public Class Methods

new(message) click to toggle source

include Lib::DHCP::Option::Type::String

Calls superclass method Lib::DHCP::Option::new
# File lib/lib/dhcp/options/option122.rb, line 253
def initialize(message)
  oid = self.class.name.split('::').last.sub(/Option/, '').to_i
  super oid, message.to_s
end
unpack(oid, len, payload) click to toggle source
# File lib/lib/dhcp/options/option122.rb, line 276
def self.unpack(oid, len, payload)
  raise ArgumentError, "Wrong #{Lib::DHCP::Option::NAME[oid]} Option length - #{len}" unless len > 0
  self.new payload#.unpack('a*').first.to_s
end

Public Instance Methods

len() click to toggle source
# File lib/lib/dhcp/options/option122.rb, line 264
def len
  @payload.to_s.split('.').map{|label| [label.length, label.unpack('C*')]}.flatten.size + 1
end
name() click to toggle source
# File lib/lib/dhcp/options/option122.rb, line 272
def name
  "TSP's Kerberos Realm Name Sub-Option"
end
pack() click to toggle source
# File lib/lib/dhcp/options/option122.rb, line 258
def pack
  #[@oid, self.len, @payload.to_s].pack('C2a')
  fqdn_encode = @payload.to_s.split('.').map{|label| [label.length, label.unpack('C*')]}.flatten
  [6, fqdn_encode.size + 1, *fqdn_encode, 0].pack('C*')
end
payload=(message) click to toggle source
# File lib/lib/dhcp/options/option122.rb, line 268
def payload=(message)
  @payload = message.to_s
end