diff options
author | Ermal <eri@pfsense.org> | 2011-03-12 00:26:28 +0000 |
---|---|---|
committer | Ermal <eri@pfsense.org> | 2011-03-12 00:26:28 +0000 |
commit | e92916d689ddd71f3fcfe40be249836e78fe281b (patch) | |
tree | 9d8f0b35c2b4d78a73304d350e9059c024648e49 /etc/inc | |
parent | d0404e467ab5c6c6cb4b5bd244043572fb9ca983 (diff) | |
download | pfsense-e92916d689ddd71f3fcfe40be249836e78fe281b.zip pfsense-e92916d689ddd71f3fcfe40be249836e78fe281b.tar.gz |
Make sure we do not write stale data during prunning periods.
Diffstat (limited to 'etc/inc')
-rw-r--r-- | etc/inc/captiveportal.inc | 16 |
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) { |