* @copyright (C) Adam Armstrong * */ // Minimum allowed age for delete authlog entries times is 24h $cutoff = age_to_unixtime($config['housekeeping']['authlog']['age'], age_to_seconds('24h')); if ($cutoff) { $where = "`datetime` < FROM_UNIXTIME($cutoff)"; $count = dbFetchCell("SELECT COUNT(*) FROM `authlog` WHERE $where"); if ($count) { if ($prompt) { $answer = print_prompt("$count authlog entries older than " . format_unixtime($cutoff) . " will be deleted"); } if ($answer) { $rows = dbDelete('authlog', "$where"); if ($rows === FALSE) { // Use LIMIT with big tables print_debug("Authlog table is too big, using LIMIT for delete entries"); $rows = 0; $i = 1000; while ($i && $rows < $count) { $iter = dbDelete('authlog', $where . ' LIMIT 1000000'); if ($iter === FALSE) { break; } $rows += $iter; $i--; } } print_debug("Authlog housekeeping: deleted $rows entries"); logfile("housekeeping.log", "Authlog: deleted $rows entries older than " . format_unixtime($cutoff)); } } elseif ($prompt) { print_message("No authlog entries found older than " . format_unixtime($cutoff)); } } else { print_message("Authlog housekeeping disabled in configuration or incorrectly configured to less than 24h."); } // EOF