Sha256: a983973b910a2f543de93cec579d1d30457276e43270de772dfedf37e73a6dde
Contents?: true
Size: 893 Bytes
Versions: 1
Compression:
Stored size: 893 Bytes
Contents
# frozen_string_literal: true require 'pio/dhcp/dhcp_field' require 'pio/dhcp/field_util' require 'pio/ipv4_header' require 'pio/ethernet_header' require 'pio/udp_header' module Pio class Dhcp # Dhcp frame parser. class Frame < BinData::Record include FieldUtil OPTION_FIELD_LENGTH = 60 include Ethernet include IPv4 include UdpHeader endian :big ethernet_header ether_type: Ethernet::Type::IPV4 ipv4_header ip_protocol: ProtocolNumber::UDP udp_header dhcp_field :dhcp string :padding, read_length: 0, initial_value: :ff_and_padding def to_binary to_binary_s end private def ff_and_padding padding_length = OPTION_FIELD_LENGTH - dhcp.optional_tlvs.num_bytes - 1 [0xFF].pack('C') + (padding_length > 0 ? "\x00" * padding_length : '') end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pio-0.30.2 | lib/pio/dhcp/frame.rb |