summaryrefslogtreecommitdiffstats
path: root/etc/inc/captiveportal.inc
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2011-03-12 00:26:28 +0000
committerErmal <eri@pfsense.org>2011-03-12 00:26:28 +0000
commite92916d689ddd71f3fcfe40be249836e78fe281b (patch)
tree9d8f0b35c2b4d78a73304d350e9059c024648e49 /etc/inc/captiveportal.inc
parentd0404e467ab5c6c6cb4b5bd244043572fb9ca983 (diff)
downloadpfsense-e92916d689ddd71f3fcfe40be249836e78fe281b.zip
pfsense-e92916d689ddd71f3fcfe40be249836e78fe281b.tar.gz
Make sure we do not write stale data during prunning periods.
Diffstat (limited to 'etc/inc/captiveportal.inc')
-rw-r--r--etc/inc/captiveportal.inc16
1 files changed, 10 insertions, 6 deletions
diff --git a/etc/inc/captiveportal.inc b/etc/inc/captiveportal.inc
index 1191c7f..0363f78 100644
--- a/etc/inc/captiveportal.inc
+++ b/etc/inc/captiveportal.inc
@@ -837,7 +837,8 @@ function captiveportal_prune_old() {
}
/* write database */
- captiveportal_write_db($cpdb, false, $unsetindexes);
+ if (!empty($unsetindexes))
+ captiveportal_write_db($cpdb, false, $unsetindexes);
}
/* remove a single client according to the DB entry */
@@ -1285,16 +1286,19 @@ function captiveportal_read_db($locked = false) {
}
/* write captive portal DB */
-function captiveportal_write_db($cpdb, $locked = false, $remove = array()) {
+function captiveportal_write_db($cpdb, $locked = false, $remove = false) {
global $g;
if ($locked == false)
$cpdblck = lock('captiveportaldb', LOCK_EX);
- if (!empty($remove)) {
- $cpdb = captiveportal_read_db(true);
- foreach ($remove as $key)
- unset($cpdb[$key]);
+ if (is_array($remove)) {
+ if (!empty($remove)) {
+ $cpdb = captiveportal_read_db(true);
+ foreach ($remove as $key)
+ unset($cpdb[$key]);
+ } else
+ return; //This makes sure no record removal calls
}
$fd = @fopen("{$g['vardb_path']}/captiveportal.db", "w");
if ($fd) {
OpenPOWER on IntegriCloud