summaryrefslogtreecommitdiffstats
path: root/etc/inc/captiveportal.inc
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2010-06-21 11:06:50 +0000
committerErmal <eri@pfsense.org>2010-06-21 11:06:50 +0000
commiteade409a42bdb17e208dbf9f212ec7c9b6b0b4f1 (patch)
tree7d62876f696da22c15ab1b94b16909b3a35f9428 /etc/inc/captiveportal.inc
parent1d9e9ccac43f61ed20b9181940fc12ba9e84096f (diff)
downloadpfsense-eade409a42bdb17e208dbf9f212ec7c9b6b0b4f1.zip
pfsense-eade409a42bdb17e208dbf9f212ec7c9b6b0b4f1.tar.gz
Use proper locking.
Diffstat (limited to 'etc/inc/captiveportal.inc')
-rw-r--r--etc/inc/captiveportal.inc15
1 files changed, 11 insertions, 4 deletions
diff --git a/etc/inc/captiveportal.inc b/etc/inc/captiveportal.inc
index 1b2d361..1e96b41 100644
--- a/etc/inc/captiveportal.inc
+++ b/etc/inc/captiveportal.inc
@@ -384,6 +384,9 @@ function captiveportal_init_rules($reinit = false) {
} else
return false;
+ if ($reinit == false)
+ $captiveportallck = lock('captiveportal');
+
/* init dummynet/ipfw rules number database */
captiveportal_init_ipfw_ruleno();
@@ -526,10 +529,14 @@ EOD;
$tmprules .= "flush\n";
$cprules = "{$tmprules}\n{$cprules}";
}
- if (file_put_contents("{$g['tmp_path']}/ipfw.cp.rules", $cprules)) {
- mwexec("/sbin/ipfw -q {$g['tmp_path']}/ipfw.cp.rules", true);
- //@unlink("{$g['tmp_path']}/ipfw.cp.rules");
- }
+
+ file_put_contents("{$g['tmp_path']}/ipfw.cp.rules", $cprules);
+ mwexec("/sbin/ipfw -q {$g['tmp_path']}/ipfw.cp.rules", true);
+ @unlink("{$g['tmp_path']}/ipfw.cp.rules");
+
+ if ($reinit == false)
+ unlock($captiveportallck);
+
/* filter on layer2 as well so we can check MAC addresses */
mwexec("/sbin/sysctl net.link.ether.ipfw=1");
OpenPOWER on IntegriCloud