diff options
author | Ermal <eri@pfsense.org> | 2010-06-21 11:06:50 +0000 |
---|---|---|
committer | Ermal <eri@pfsense.org> | 2010-06-21 11:06:50 +0000 |
commit | eade409a42bdb17e208dbf9f212ec7c9b6b0b4f1 (patch) | |
tree | 7d62876f696da22c15ab1b94b16909b3a35f9428 /etc | |
parent | 1d9e9ccac43f61ed20b9181940fc12ba9e84096f (diff) | |
download | pfsense-eade409a42bdb17e208dbf9f212ec7c9b6b0b4f1.zip pfsense-eade409a42bdb17e208dbf9f212ec7c9b6b0b4f1.tar.gz |
Use proper locking.
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/captiveportal.inc | 15 |
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"); |