module Lib::DHCP::Option::Type::SubOption::ClassMethods

Public Instance Methods

unpack(oid, len, payload) click to toggle source
# File lib/lib/dhcp/options/type/sub_option.rb, line 65
def unpack(oid, len, payload)
  raise ArgumentError, "Wrong Option #{Lib::DHCP::Option::NAME[oid]} length - #{len}" unless len > 0
  i = 0
  sub_options = []
  while i < len
    sub_oid, sub_len = payload.unpack("@#{i}C2")
    sub_payload = payload.unpack("@#{i+2}a#{sub_len}").first.to_s
    sub_options << [sub_oid, sub_payload]
    i += (sub_len + 2)
  end
  self.new *sub_options
end