Browse Source

Add ! syntax (NOT) to filters. Don't throttle duplicate post bodies when they are empty

pull/40/head
Michael Foster 11 years ago
parent
commit
b7f16dee0f
  1. 7
      inc/config.php
  2. 9
      inc/filters.php

7
inc/config.php

@ -305,7 +305,7 @@
$config['filters'][] = array(
'condition' => array(
'flood-match' => array('ip'), // Only match IP address
'flood-time' => &$config['flood_time'] // 10 seconds minimum
'flood-time' => &$config['flood_time']
),
'action' => 'reject',
'message' => &$config['error']['flood']
@ -315,7 +315,8 @@
$config['filters'][] = array(
'condition' => array(
'flood-match' => array('ip', 'body'), // Match IP address and post body
'flood-time' => &$config['flood_time_ip'] // 2 minutes minimum
'flood-time' => &$config['flood_time_ip'],
'!body' => '/^$/', // Post body is NOT empty
),
'action' => 'reject',
'message' => &$config['error']['flood']
@ -325,7 +326,7 @@
$config['filters'][] = array(
'condition' => array(
'flood-match' => array('body'), // Match IP address and post body
'flood-time' => &$config['flood_time_same'] // 30 seconds minimum
'flood-time' => &$config['flood_time_same']
),
'action' => 'reject',
'message' => &$config['error']['flood']

9
inc/filters.php

@ -168,11 +168,14 @@ class Filter {
public function check(array $post) {
foreach ($this->condition as $condition => $value) {
if (!$this->match($post, $condition, $value))
if ($condition[0] == '!') {
$NOT = true;
$condition = substr($condition, 1);
} else $NOT = false;
if ($this->match($post, $condition, $value) == $NOT)
return false;
}
/* match */
return true;
}
}

Loading…
Cancel
Save