From e92916d689ddd71f3fcfe40be249836e78fe281b Mon Sep 17 00:00:00 2001 From: Ermal Date: Sat, 12 Mar 2011 00:26:28 +0000 Subject: Make sure we do not write stale data during prunning periods. --- etc/inc/captiveportal.inc | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'etc/inc') 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) { -- cgit v1.1