diff options
-rw-r--r-- | src/usr/local/www/services_dhcp.php | 4 | ||||
-rw-r--r-- | src/usr/local/www/services_dhcp_edit.php | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/usr/local/www/services_dhcp.php b/src/usr/local/www/services_dhcp.php index 5c90fe3..2419b00 100644 --- a/src/usr/local/www/services_dhcp.php +++ b/src/usr/local/www/services_dhcp.php @@ -632,6 +632,10 @@ if ($act == "delpool") { if ($act == "del") { if ($a_maps[$_GET['id']]) { + /* Remove staic ARP entry, if necessary */ + if (isset($a_maps[$_GET['id']]['arp_table_static_entry'])) { + mwexec("/usr/sbin/arp -d " . escapeshellarg($a_maps[$_GET['id']]['ipaddr'])); + } unset($a_maps[$_GET['id']]); write_config(); if (isset($config['dhcpd'][$if]['enable'])) { diff --git a/src/usr/local/www/services_dhcp_edit.php b/src/usr/local/www/services_dhcp_edit.php index f599610..0d9ab28 100644 --- a/src/usr/local/www/services_dhcp_edit.php +++ b/src/usr/local/www/services_dhcp_edit.php @@ -362,6 +362,13 @@ if ($_POST) { } } + /* Configure staic ARP entry, or remove ARP entry if this host is dynamic. See https://redmine.pfsense.org/issues/6821 */ + if ($mapent['arp_table_static_entry']) { + mwexec("/usr/sbin/arp -S " . escapeshellarg($mapent['ipaddr']) . " " . escapeshellarg($mapent['mac'])); + } else { + mwexec("/usr/sbin/arp -d " . escapeshellarg($mapent['ipaddr'])); + } + header("Location: services_dhcp.php?if={$if}"); exit; } |