diff --git a/src/etc/inc/plugins.inc.d/dhcpd.inc b/src/etc/inc/plugins.inc.d/dhcpd.inc index 5cae4ecd2..cf42b3a2a 100644 --- a/src/etc/inc/plugins.inc.d/dhcpd.inc +++ b/src/etc/inc/plugins.inc.d/dhcpd.inc @@ -1092,6 +1092,7 @@ EOD; $dhhostname = str_replace(" ", "_", $sm['hostname']); $dhhostname = str_replace(".", "_", $dhhostname); $dhcpdconf .= " option host-name \"{$dhhostname}\";\n"; + $dhcpdconf .= " set hostname-override = config-option host-name;\n"; } if (!empty($sm['filename'])) { $dhcpdconf .= " filename \"{$sm['filename']}\";\n"; @@ -1561,6 +1562,7 @@ EOD; $dhhostname = str_replace(" ", "_", $sm['hostname']); $dhhostname = str_replace(".", "_", $dhhostname); $dhcpdv6conf .= " option host-name {$dhhostname};\n"; + $dhcpdv6conf .= " set hostname-override = config-option host-name;\n"; } if (!empty($sm['filename'])) { $dhcpdv6conf .= " filename \"{$sm['filename']}\";\n"; diff --git a/src/opnsense/site-python/watchers/dhcpd.py b/src/opnsense/site-python/watchers/dhcpd.py index 92e22a5a3..d58f15dee 100644 --- a/src/opnsense/site-python/watchers/dhcpd.py +++ b/src/opnsense/site-python/watchers/dhcpd.py @@ -57,6 +57,7 @@ class DHCPDLease(object): :param lines: lease section as list item :return: dictionary """ + hostname_override = None lease = dict() lease['address'] = lines[0].split()[1] for line in lines: @@ -73,10 +74,15 @@ class DHCPDLease(object): field_value = {'hardware-type': parts[1], 'mac-address': parts[2].split(';')[0]} elif field_name in('uid', 'client-hostname') and len(parts) >= 2 and parts[1].find('"') > -1: field_value = parts[1].split('"')[1] + elif field_name == 'set' and len(parts) >= 4 and parts[1] == 'hostname-override' and parts[3].find('"') > -1: + hostname_override = parts[3].split('"')[1] if field_value is not None: lease[field_name] = field_value + if hostname_override is not None: + lease['client-hostname'] = hostname_override + return lease def watch(self): diff --git a/src/www/services_dhcp_edit.php b/src/www/services_dhcp_edit.php index a5cfca92d..40f070562 100644 --- a/src/www/services_dhcp_edit.php +++ b/src/www/services_dhcp_edit.php @@ -354,7 +354,6 @@ include("head.inc"); diff --git a/src/www/services_dhcpv6_edit.php b/src/www/services_dhcpv6_edit.php index e3c9173c2..421f9bf65 100644 --- a/src/www/services_dhcpv6_edit.php +++ b/src/www/services_dhcpv6_edit.php @@ -207,7 +207,6 @@ include("head.inc");