Don't purge the ban list of expires bans every time somebody posts. Add a timer option. Less SQL queries when posting.
This commit is contained in:
parent
fb3b9ea868
commit
0890557ebb
@ -983,6 +983,10 @@
|
|||||||
// persistent spammers and ban evaders. Again, a little more database load.
|
// persistent spammers and ban evaders. Again, a little more database load.
|
||||||
$config['ban_cidr'] = true;
|
$config['ban_cidr'] = true;
|
||||||
|
|
||||||
|
// How often (minimum) to purge the ban list of expired bans (which have been seen). Only works when
|
||||||
|
// $config['cache'] is enabled and working.
|
||||||
|
$config['purge_bans'] = 60 * 60 * 12; // 12 hours
|
||||||
|
|
||||||
// Do DNS lookups on IP addresses to get their hostname for the moderator IP pages (?/IP/x.x.x.x).
|
// Do DNS lookups on IP addresses to get their hostname for the moderator IP pages (?/IP/x.x.x.x).
|
||||||
$config['mod']['dns_lookup'] = true;
|
$config['mod']['dns_lookup'] = true;
|
||||||
// How many recent posts, per board, to show in ?/IP/x.x.x.x.
|
// How many recent posts, per board, to show in ?/IP/x.x.x.x.
|
||||||
|
@ -687,9 +687,19 @@ function checkBan($board = 0) {
|
|||||||
|
|
||||||
// No reason to keep expired bans in the database (except those that haven't been viewed yet)
|
// No reason to keep expired bans in the database (except those that haven't been viewed yet)
|
||||||
function purge_bans() {
|
function purge_bans() {
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
if ($config['cache']['enabled'] && $last_time_purged = cache::get('purged_bans_last')) {
|
||||||
|
if (time() - $last_time_purged < 60 * 30)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$query = prepare("DELETE FROM ``bans`` WHERE `expires` IS NOT NULL AND `expires` < :time AND `seen` = 1");
|
$query = prepare("DELETE FROM ``bans`` WHERE `expires` IS NOT NULL AND `expires` < :time AND `seen` = 1");
|
||||||
$query->bindValue(':time', time());
|
$query->bindValue(':time', time());
|
||||||
$query->execute() or error(db_error($query));
|
$query->execute() or error(db_error($query));
|
||||||
|
|
||||||
|
if ($config['cache']['enabled'])
|
||||||
|
cache::set('purged_bans_last', time());
|
||||||
}
|
}
|
||||||
|
|
||||||
function threadLocked($id) {
|
function threadLocked($id) {
|
||||||
|
Loading…
Reference in New Issue
Block a user