From a207d2c951261d2d54de30b1ae3b3eada0898aa5 Mon Sep 17 00:00:00 2001 From: doktornotor Date: Sat, 25 Feb 2017 15:43:41 +0100 Subject: Update BIND zones when adding static DHCP leases if needed (Bug #3710) --- src/usr/local/www/services_dhcp.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/usr/local/www/services_dhcp.php b/src/usr/local/www/services_dhcp.php index 3e57cea..cf22d73 100644 --- a/src/usr/local/www/services_dhcp.php +++ b/src/usr/local/www/services_dhcp.php @@ -640,6 +640,30 @@ if ((isset($_POST['save']) || isset($_POST['apply'])) && (!$input_errors)) { clear_subsystem_dirty('staticmaps'); } } + /* BIND package - Bug #3710 */ + if (!function_exists('is_package_installed')) { + require_once('pkg-utils.inc'); + } + if (is_package_installed('pfSense-pkg-bind') && isset($config['installedpackages']['bind']['config'][0]['enable_bind'])) { + $reloadbind = false; + if (is_array($config['installedpackages']['bindzone'])) { + $bindzone = $config['installedpackages']['bindzone']['config']; + } else { + $bindzone = array(); + } + for ($x = 0; $x < sizeof($bindzone); $x++) { + if ($zone['regdhcpstatic'] == 'on') { + $reloadbind = true; + break; + } + } + if ($reloadbind === true) { + if (file_exists("/usr/local/pkg/bind.inc")) { + require_once("/usr/local/pkg/bind.inc"); + bind_sync(); + } + } + } if ($dhcpd_enable_changed) { $retvalfc |= filter_configure(); } -- cgit v1.1 From c3fb011938cc8d17875cffa6e556ad29dc414772 Mon Sep 17 00:00:00 2001 From: doktornotor Date: Sat, 25 Feb 2017 15:45:54 +0100 Subject: Update BIND zones when adding static DHCP leases if needed (Bug #3710) --- src/usr/local/www/services_dhcpv6.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/usr/local/www/services_dhcpv6.php b/src/usr/local/www/services_dhcpv6.php index 3762497..11aa22f 100644 --- a/src/usr/local/www/services_dhcpv6.php +++ b/src/usr/local/www/services_dhcpv6.php @@ -61,6 +61,30 @@ function dhcpv6_apply_changes($dhcpdv6_enable_changed) { clear_subsystem_dirty('staticmaps'); } } + /* BIND package - Bug #3710 */ + if (!function_exists('is_package_installed')) { + require_once('pkg-utils.inc'); + } + if (is_package_installed('pfSense-pkg-bind') && isset($config['installedpackages']['bind']['config'][0]['enable_bind'])) { + $reloadbind = false; + if (is_array($config['installedpackages']['bindzone'])) { + $bindzone = $config['installedpackages']['bindzone']['config']; + } else { + $bindzone = array(); + } + for ($x = 0; $x < sizeof($bindzone); $x++) { + if ($zone['regdhcpstatic'] == 'on') { + $reloadbind = true; + break; + } + } + if ($reloadbind === true) { + if (file_exists("/usr/local/pkg/bind.inc")) { + require_once("/usr/local/pkg/bind.inc"); + bind_sync(); + } + } + } if ($dhcpdv6_enable_changed) { $retvalfc |= filter_configure(); } -- cgit v1.1 From e3d5c2e98f32323df11a5029dba4cd1b575dc329 Mon Sep 17 00:00:00 2001 From: doktornotor Date: Sat, 25 Feb 2017 15:57:08 +0100 Subject: Add missing $zone variable --- src/usr/local/www/services_dhcp.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/usr/local/www/services_dhcp.php b/src/usr/local/www/services_dhcp.php index cf22d73..92a3403 100644 --- a/src/usr/local/www/services_dhcp.php +++ b/src/usr/local/www/services_dhcp.php @@ -652,6 +652,7 @@ if ((isset($_POST['save']) || isset($_POST['apply'])) && (!$input_errors)) { $bindzone = array(); } for ($x = 0; $x < sizeof($bindzone); $x++) { + $zone = $bindzone[$x]; if ($zone['regdhcpstatic'] == 'on') { $reloadbind = true; break; -- cgit v1.1 From 6cc58ae8d8cf69a22e2b155aa670c95a46593a25 Mon Sep 17 00:00:00 2001 From: doktornotor Date: Sat, 25 Feb 2017 15:57:59 +0100 Subject: Add missing $zone variable --- src/usr/local/www/services_dhcpv6.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/usr/local/www/services_dhcpv6.php b/src/usr/local/www/services_dhcpv6.php index 11aa22f..7ea9d69 100644 --- a/src/usr/local/www/services_dhcpv6.php +++ b/src/usr/local/www/services_dhcpv6.php @@ -73,6 +73,7 @@ function dhcpv6_apply_changes($dhcpdv6_enable_changed) { $bindzone = array(); } for ($x = 0; $x < sizeof($bindzone); $x++) { + $zone = $bindzone[$x]; if ($zone['regdhcpstatic'] == 'on') { $reloadbind = true; break; -- cgit v1.1