Module: Lib::DHCP::Option::Type::SubOption::ClassMethods

Defined in:
lib/lib/dhcp/options/type/sub_option.rb

Instance Method Summary collapse

Instance Method Details

#unpack(oid, len, payload) ⇒ Object

Raises:

  • (ArgumentError)


70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/lib/dhcp/options/type/sub_option.rb', line 70

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