Sha256: f3a782fb5765b40972be2ecc8137ce610a6995c4dbc182418ecb1b88ec35d61f

Contents?: true

Size: 1.18 KB

Versions: 10

Compression:

Stored size: 1.18 KB

Contents

# This file is part of PacketGen
# See https://github.com/sdaubert/packetgen for more informations
# Copyright (C) 2016 Sylvain Daubert <sylvain.daubert@laposte.net>
# This program is published under MIT license.

# frozen_string_literal: true

module PacketGen
  module Header
    class DHCP
      # Container class for DHCP Options
      #
      # == Add DHCP options to an +Options+ instance
      #   options = PacketGen::Header::DHCP::Options.new
      #   # Add a lease_time option
      #   options << { type: 'lease_time', value: 3600 }
      #   # Add a domain option. Here, use integer type
      #   options << { type: 15, value: 'example.net'}
      #   # Add an end option
      #   options << { type: 'end' }
      #   # And finish with padding
      #   options << { type: 'pad' }
      # @author Sylvain Daubert
      class Options < Types::Array
        set_of Option

        private

        def record_from_hash(hsh)
          case hsh[:type]
          when 'pad', 0
            Pad.new
          when 'end', 255
            End.new
          else
            obj_klass = self.class.class_eval { @klass }
            obj_klass.new(hsh)
          end
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
packetgen-3.0.1 lib/packetgen/header/dhcp/options.rb
packetgen-3.0.0 lib/packetgen/header/dhcp/options.rb
packetgen-2.8.7 lib/packetgen/header/dhcp/options.rb
packetgen-2.8.6 lib/packetgen/header/dhcp/options.rb
packetgen-2.8.5 lib/packetgen/header/dhcp/options.rb
packetgen-2.8.4 lib/packetgen/header/dhcp/options.rb
packetgen-2.8.3 lib/packetgen/header/dhcp/options.rb
packetgen-2.8.1 lib/packetgen/header/dhcp/options.rb
packetgen-2.8.0 lib/packetgen/header/dhcp/options.rb
packetgen-2.7.0 lib/packetgen/header/dhcp/options.rb