class Lib::DHCP::Option61

Public Class Methods

new(client_id) click to toggle source
Calls superclass method Lib::DHCP::Option::new
# File lib/lib/dhcp/options/option61.rb, line 15
def initialize(client_id)
  id =  client_id.to_s.gsub(/(:|-|\.|,)/,'').to_s#.pack('H*').unpack('C*')
  super 61, id
end

Private Class Methods

unpack(oid, len, payload) click to toggle source
# File lib/lib/dhcp/options/option61.rb, line 31
def self.unpack(oid, len, payload)
  raise ArgumentError, "Wrong CLIENT-IDENTIFIER Option length - #{len}" unless len > 0
  self.new payload.unpack('H*').first.to_s
end

Public Instance Methods

len() click to toggle source
# File lib/lib/dhcp/options/option61.rb, line 20
def len
  @payload.size / 2
end
pack() click to toggle source
# File lib/lib/dhcp/options/option61.rb, line 24
def pack
  op61 = [@payload.to_s.gsub(/(:|-|\.|,)/,'').to_s].pack('H*').unpack('C*')
  [61, len, op61.map{|item| item.to_s(16).rjust(2,'0')}.join('')].pack('C2H*')
end