Class: DhcpsApi::DHCP_SUBNET_ELEMENT_DATA_V4
- Inherits:
-
DHCPS_Struct
- Object
- FFI::Struct
- DHCPS_Struct
- DhcpsApi::DHCP_SUBNET_ELEMENT_DATA_V4
- Defined in:
- lib/dhcpsapi/data_structures.rb
Class Method Summary collapse
- .build_for_reservation(reservation_ip, reservation_mac, client_type = DhcpsApi::ClientType::CLIENT_TYPE_DHCP) ⇒ Object
- .build_for_subnet_range(start_ip_address, end_ip_address) ⇒ Object
Instance Method Summary collapse
Methods inherited from DHCPS_Struct
#as_ruby_struct, ruby_struct_attr
Methods included from RubyStructAttrHelpers
#dhcp_client_uid_to_mac, #ip_to_uint32, #mac_address_to_array_of_uint8, #to_string, #to_wchar_string, #uint32_to_ip, #wchar_string_length
Class Method Details
.build_for_reservation(reservation_ip, reservation_mac, client_type = DhcpsApi::ClientType::CLIENT_TYPE_DHCP) ⇒ Object
556 557 558 559 560 561 562 563 564 565 566 |
# 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) ⇒ Object
568 569 570 571 572 573 574 575 576 |
# 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 |
Instance Method Details
#element_as_ruby_struct_attr ⇒ Object
578 579 580 581 582 583 584 585 586 587 588 589 590 591 |
# 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 |