diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/conf_mode/dhcp_server.py | 10 | ||||
| -rwxr-xr-x | src/conf_mode/dhcpv6_server.py | 5 | 
2 files changed, 10 insertions, 5 deletions
diff --git a/src/conf_mode/dhcp_server.py b/src/conf_mode/dhcp_server.py index 958e90014..abccdb6a9 100755 --- a/src/conf_mode/dhcp_server.py +++ b/src/conf_mode/dhcp_server.py @@ -18,7 +18,6 @@ import os  from ipaddress import ip_address  from ipaddress import ip_network -from netaddr import IPAddress  from netaddr import IPRange  from sys import exit @@ -141,7 +140,7 @@ def get_config(config=None):                                  {'range' : new_range_dict})      if dict_search('failover.certificate', dhcp): -        dhcp['pki'] = conf.get_config_dict(['pki'], key_mangling=('-', '_'), get_first_key=True, no_tag_node_value_mangle=True)  +        dhcp['pki'] = conf.get_config_dict(['pki'], key_mangling=('-', '_'), get_first_key=True, no_tag_node_value_mangle=True)      return dhcp @@ -226,9 +225,10 @@ def verify(dhcp):                              raise ConfigError(f'Configured static lease address for mapping "{mapping}" is\n' \                                                f'not within shared-network "{network}, {subnet}"!') -                        if 'mac_address' not in mapping_config: -                            raise ConfigError(f'MAC address required for static mapping "{mapping}"\n' \ -                                              f'within shared-network "{network}, {subnet}"!') +                        if ('mac' not in mapping_config and 'duid' not in mapping_config) or \ +                            ('mac' in mapping_config and 'duid' in mapping_config): +                            raise ConfigError(f'Either MAC address or Client identifier (DUID) is required for ' +                                              f'static mapping "{mapping}" within shared-network "{network}, {subnet}"!')              # There must be one subnet connected to a listen interface.              # This only counts if the network itself is not disabled! diff --git a/src/conf_mode/dhcpv6_server.py b/src/conf_mode/dhcpv6_server.py index b01f510e5..f9da3d84a 100755 --- a/src/conf_mode/dhcpv6_server.py +++ b/src/conf_mode/dhcpv6_server.py @@ -135,6 +135,11 @@ def verify(dhcpv6):                          if ip_address(mapping_config['ipv6_address']) not in ip_network(subnet):                              raise ConfigError(f'static-mapping address for mapping "{mapping}" is not in subnet "{subnet}"!') +                        if ('mac' not in mapping_config and 'duid' not in mapping_config) or \ +                            ('mac' in mapping_config and 'duid' in mapping_config): +                            raise ConfigError(f'Either MAC address or Client identifier (DUID) is required for ' +                                              f'static mapping "{mapping}" within shared-network "{network}, {subnet}"!') +              if 'vendor_option' in subnet_config:                  if len(dict_search('vendor_option.cisco.tftp_server', subnet_config)) > 2:                      raise ConfigError(f'No more then two Cisco tftp-servers should be defined for subnet "{subnet}"!')  | 
