class DhcpsApi::DHCP_CLIENT_UID

typedef struct _DHCP_BINARY_DATA {

DWORD DataLength;
BYTE  *Data;

} DHCP_BINARY_DATA, *LPDHCP_BINARY_DATA, DHCP_CLIENT_UID;

Public Class Methods

from_mac_address(mac_address) click to toggle source
# File lib/dhcpsapi/data_structures.rb, line 43
def self.from_mac_address(mac_address)
  to_return = new
  mac_as_uint8s = to_return.mac_address_to_array_of_uint8(mac_address)
  to_return[:data_length] = mac_as_uint8s.size
  to_return[:data] = FFI::MemoryPointer.new(:uint8, mac_as_uint8s.size)
  to_return[:data].write_array_of_uint8(mac_as_uint8s)
  to_return
end

Public Instance Methods

data_as_ruby_struct_attr() click to toggle source
# File lib/dhcpsapi/data_structures.rb, line 68
def data_as_ruby_struct_attr
  self[:data].read_array_of_type(:uint8, :read_uint8, self[:data_length]).map {|w| "%02X" % w}.join(":")
end
initialize_with_subnet_and_mac_addresses(subnet_address, mac_address) click to toggle source
# File lib/dhcpsapi/data_structures.rb, line 60
def initialize_with_subnet_and_mac_addresses(subnet_address, mac_address)
  mac_as_uint8s = mac_address_to_array_of_uint8(mac_address)
  subnet_as_uint8s = subnet_address.split('.').reverse.map {|octet| octet.to_i}
  self[:data_length] = 11
  self[:data] = FFI::MemoryPointer.new(:uint8, 11)
  self[:data].write_array_of_uint8(subnet_as_uint8s + [0x1] + mac_as_uint8s)
end
intialize_with_mac_address(mac_address) click to toggle source
# File lib/dhcpsapi/data_structures.rb, line 52
def intialize_with_mac_address(mac_address)
  mac_as_uint8s = mac_address_to_array_of_uint8(mac_address)
  self[:data_length] = mac_as_uint8s.size
  self[:data] = FFI::MemoryPointer.new(:uint8, mac_as_uint8s.size)
  self[:data].write_array_of_uint8(mac_as_uint8s)
  self
end