summaryrefslogtreecommitdiffstats
path: root/usr/local/www/services_dhcp.php
diff options
context:
space:
mode:
authorPhil Davis <phil.davis@world.inf.org>2013-06-01 23:03:16 +0545
committerPhil Davis <phil.davis@world.inf.org>2013-06-01 23:03:16 +0545
commit6c124212ebb5b9b8277ff96328a10daa1345c16b (patch)
treebff5b5ce96cce45ef68353d15243169e115d2bc5 /usr/local/www/services_dhcp.php
parent9399370b367df7b73b84d605f4f44599c93b0bbe (diff)
downloadpfsense-6c124212ebb5b9b8277ff96328a10daa1345c16b.zip
pfsense-6c124212ebb5b9b8277ff96328a10daa1345c16b.tar.gz
DHCP Server enable/disable change needs filter_configure
When DHCP Server is enabled or disabled on an interface, the filter rules should change to include or not mention DHCP.
Diffstat (limited to 'usr/local/www/services_dhcp.php')
-rwxr-xr-xusr/local/www/services_dhcp.php16
1 files changed, 14 insertions, 2 deletions
diff --git a/usr/local/www/services_dhcp.php b/usr/local/www/services_dhcp.php
index 6781ece..eeafd11 100755
--- a/usr/local/www/services_dhcp.php
+++ b/usr/local/www/services_dhcp.php
@@ -41,6 +41,7 @@
##|-PRIV
require("guiconfig.inc");
+require_once("filter.inc");
if(!$g['services_dhcp_server_enable']) {
Header("Location: /");
@@ -424,9 +425,17 @@ if ($_POST) {
if (!is_array($dhcpdconf['range']))
$dhcpdconf['range'] = array();
+ $dhcpd_enable_changed = false;
+
// Global Options
if (!is_numeric($pool) && !($act == "newpool")) {
- $dhcpdconf['enable'] = ($_POST['enable']) ? true : false;
+ $old_dhcpd_enable = isset($dhcpdconf['enable']);
+ $new_dhcpd_enable = ($_POST['enable']) ? true : false;
+ if ($old_dhcpd_enable != $new_dhcpd_enable) {
+ /* DHCP has been enabled or disabled. The pf ruleset will need to be rebuilt to allow or disallow DHCP. */
+ $dhcpd_enable_changed = true;
+ }
+ $dhcpdconf['enable'] = $new_dhcpd_enable;
$dhcpdconf['staticarp'] = ($_POST['staticarp']) ? true : false;
$previous = $dhcpdconf['failover_peerip'];
if($previous <> $_POST['failover_peerip'])
@@ -514,7 +523,10 @@ if ($_POST) {
if ($retvaldhcp == 0)
clear_subsystem_dirty('staticmaps');
}
- if($retvaldhcp == 1 || $retvaldns == 1)
+ if ($dhcpd_enable_changed)
+ $retvalfc = filter_configure();
+
+ if($retvaldhcp == 1 || $retvaldns == 1 || $retvalfc == 1)
$retval = 1;
$savemsg = get_std_save_message($retval);
}
OpenPOWER on IntegriCloud