Sha256: f68b08851776d0cb2035e6f1af69c8f56a20fcf0a64570b69023aa39dd4c860b

Contents?: true

Size: 933 Bytes

Versions: 12

Compression:

Stored size: 933 Bytes

Contents

#Author: Piotr Wojcieszonek
#e-mail: piotr@wojcieszonek.pl
# Copyright 22.03.2016 by Piotr Wojcieszonek



require_relative 'option'

module Lib
  module DHCP
    class Option23 < Option
      # Default IP Time-to-live, The code for this option is 23, and its length is 1.

      def_delegators :@payload, :to_s

      def initialize(ttl)
        super IP_TTL, ttl.to_i
      end

      def payload=(ttl)
        @payload = ttl.to_i
      end

      def pack
        [IP_TTL, 1, @payload.to_i].pack('C3')
      end

      def len
        1
      end

      alias_method :ttl, :payload
      alias_method :ttl=, :payload=

      private

      def self.unpack(oid, len, payload)
        raise ArgumentError, "OID Mismatch for TCPTTL Option - #{oid}" unless oid.to_i == IP_TTL
        raise ArgumentError, "Wrong TCPTTL Option length - #{len}" unless len == 1
        self.new payload.unpack('C').first.to_i
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
lib-dhcp-0.2.5 lib/lib/dhcp/options/option23.rb
lib-dhcp-0.2.4 lib/lib/dhcp/options/option23.rb
lib-dhcp-0.2.3 lib/lib/dhcp/options/option23.rb
lib-dhcp-0.2.2 lib/lib/dhcp/options/option23.rb
lib-dhcp-0.2.1 lib/lib/dhcp/options/option23.rb
lib-dhcp-0.2.0 lib/lib/dhcp/options/option23.rb
lib-dhcp-0.1.8 lib/lib/dhcp/options/option23.rb
lib-dhcp-0.1.4 lib/lib/dhcp/options/option23.rb
lib-dhcp-0.1.3 lib/lib/dhcp/options/option23.rb
lib-dhcp-0.1.2 lib/lib/dhcp/options/option23.rb
lib-dhcp-0.1.1 lib/lib/dhcp/options/option23.rb
lib-dhcp-0.1.0 lib/lib/dhcp/options/option23.rb