class DhcpsApi::DHCP_SUBNET_ELEMENT_DATA_V4

Public Class Methods

build_for_reservation(reservation_ip, reservation_mac, client_type = DhcpsApi::ClientType::CLIENT_TYPE_DHCP) click to toggle source
# File lib/dhcpsapi/data_structures.rb, line 556
def self.build_for_reservation(reservation_ip, reservation_mac, client_type = DhcpsApi::ClientType::CLIENT_TYPE_DHCP)
  subnet_element = DhcpsApi::DHCP_SUBNET_ELEMENT_DATA_V4.new
  subnet_element[:element_type] = DhcpsApi::DHCP_SUBNET_ELEMENT_TYPE::DhcpReservedIps
  subnet_element[:element][:reserved_ip] = (reserved_ip = DhcpsApi::DHCP_IP_RESERVATION_V4.new).pointer

  reserved_ip[:reserved_ip_address] = reserved_ip.ip_to_uint32(reservation_ip)
  reserved_ip[:reserved_for_client] = DhcpsApi::DHCP_CLIENT_UID.from_mac_address(reservation_mac).pointer
  reserved_ip[:b_allowed_client_types] = client_type

  subnet_element
end
build_for_subnet_range(start_ip_address, end_ip_address) click to toggle source
# File lib/dhcpsapi/data_structures.rb, line 568
def self.build_for_subnet_range(start_ip_address, end_ip_address)
  subnet_element = DhcpsApi::DHCP_SUBNET_ELEMENT_DATA_V4.new
  subnet_element[:element_type] = DhcpsApi::DHCP_SUBNET_ELEMENT_TYPE::DhcpIpRanges
  subnet_element[:element][:ip_range] = (ip_range = DhcpsApi::DHCP_IP_RANGE.new).pointer
  ip_range[:start_address] = ip_range.ip_to_uint32(start_ip_address)
  ip_range[:end_address] = ip_range.ip_to_uint32(end_ip_address)

  subnet_element
end

Public Instance Methods

element_as_ruby_struct_attr() click to toggle source
# File lib/dhcpsapi/data_structures.rb, line 578
def element_as_ruby_struct_attr
  case self[:element_type]
    when DHCP_SUBNET_ELEMENT_TYPE::DhcpIpRanges
      DHCP_IP_RANGE.new(self[:element][:ip_range]).as_ruby_struct
    when DHCP_SUBNET_ELEMENT_TYPE::DhcpSecondaryHosts
      DHCP_HOST_INFO.new(self[:element][:secondary_host]).as_ruby_struct
    when DHCP_SUBNET_ELEMENT_TYPE::DhcpReservedIps
      DHCP_IP_RESERVATION_V4.new(self[:element][:reserved_ip]).as_ruby_struct
    when DHCP_SUBNET_ELEMENT_TYPE::DhcpExcludedIpRanges
      DHCP_IP_RANGE.new(self[:element][:exclude_ip_range]).as_ruby_struct
    else
      self[:element]
  end
end