From 0fff3da81d47b28be2b88db8d7de3b6809a7bb22 Mon Sep 17 00:00:00 2001 From: henoheno Date: Sat, 25 Nov 2006 22:55:34 +0900 Subject: [PATCH] Stop $asap, or do them all? --- spam.php | 62 ++++++++++++++++++++++++++++++++-------------------- spam/spam.php | 62 ++++++++++++++++++++++++++++++++-------------------- spam/spam_pickup.php | 4 ++-- spam_pickup.php | 4 ++-- 4 files changed, 80 insertions(+), 52 deletions(-) diff --git a/spam.php b/spam.php index 7cbde86..b3e7128 100644 --- a/spam.php +++ b/spam.php @@ -1,5 +1,5 @@ 0, + 'area' => 0, + 'non_uniq' => 0, + 'badhost' => 0, + ); if (! is_array($method) || empty($method)) { // Default @@ -525,47 +535,49 @@ function check_uri_spam($target = '', $method = array()) if (is_array($target)) { foreach($target as $str) { // Recurse - list($is_spam, $_quantity, $_non_uniq) = check_uri_spam($str, $method); - $quantity += $_quantity; - $non_uniq += $_non_uniq; - if ($is_spam) break; + list($is_spam, $_progress) = check_uri_spam($str, $method); + $progress['quantity'] += $_progress['quantity']; + $progress['non_uniq'] += $_progress['non_uniq']; + if ($asap || $is_spam) break; } } else { $pickups = spam_uri_pickup($target); - $quantity += count($pickups); + $progress['quantity'] += count($pickups); if (! empty($pickups)) { // URI quantity - if (! $is_spam && isset($method['quantity']) && - $quantity > $method['quantity']) { + if ((! $is_spam || ! $asap) && isset($method['quantity']) && + $progress['quantity'] > $method['quantity']) { $is_spam = TRUE; } //var_dump($method['quantity'], $is_spam); // Using invalid area - if (! $is_spam && isset($method['area'])) { + if ((! $is_spam || ! $asap) && isset($method['area'])) { foreach($pickups as $pickup) { if ($pickup['area'] < 0) { + ++$progress['area']; $is_spam = TRUE; - break; + if ($asap) break; } } } //var_dump($method['area'], $is_spam); // URI uniqueness (and removing non-uniques) - if (! $is_spam && isset($method['non_uniq'])) { + if ((! $is_spam || ! $asap) && isset($method['non_uniq'])) { $uris = array(); foreach ($pickups as $key => $pickup) { $uris[$key] = uri_array_implode($pickup); } $count = count($uris); $uris = array_unique($uris); - $non_uniq += $count - count($uris); - if ($non_uniq > $method['non_uniq']) { + $progress['non_uniq'] += $count - count($uris); + if ($progress['non_uniq'] > $method['non_uniq']) { $is_spam = TRUE; - } else { + } + if (! $asap || ! $is_spam) { foreach (array_diff(array_keys($pickups), array_keys($uris)) as $remove) { unset($pickups[$remove]); @@ -577,18 +589,20 @@ function check_uri_spam($target = '', $method = array()) //var_dump($method['non_uniq'], $is_spam); // Bad host - if (! $is_spam && isset($method['badhost'])) { + if ((! $is_spam || ! $asap) && isset($method['badhost'])) { $hosts = array(); foreach ($pickups as $pickup) { $hosts[] = & $pickup['host']; } - $is_spam = is_badhost(array_unique($hosts)); + $count = is_badhost(array_unique($hosts), $asap); + $progress['badhost'] += $count; + if ($count !== 0) $is_spam = TRUE; } //var_dump($method['badhost'], $is_spam); } } - return array($is_spam, $quantity, $non_uniq); + return array($is_spam, $progress); } // --------------------- diff --git a/spam/spam.php b/spam/spam.php index 7cbde86..b3e7128 100644 --- a/spam/spam.php +++ b/spam/spam.php @@ -1,5 +1,5 @@ 0, + 'area' => 0, + 'non_uniq' => 0, + 'badhost' => 0, + ); if (! is_array($method) || empty($method)) { // Default @@ -525,47 +535,49 @@ function check_uri_spam($target = '', $method = array()) if (is_array($target)) { foreach($target as $str) { // Recurse - list($is_spam, $_quantity, $_non_uniq) = check_uri_spam($str, $method); - $quantity += $_quantity; - $non_uniq += $_non_uniq; - if ($is_spam) break; + list($is_spam, $_progress) = check_uri_spam($str, $method); + $progress['quantity'] += $_progress['quantity']; + $progress['non_uniq'] += $_progress['non_uniq']; + if ($asap || $is_spam) break; } } else { $pickups = spam_uri_pickup($target); - $quantity += count($pickups); + $progress['quantity'] += count($pickups); if (! empty($pickups)) { // URI quantity - if (! $is_spam && isset($method['quantity']) && - $quantity > $method['quantity']) { + if ((! $is_spam || ! $asap) && isset($method['quantity']) && + $progress['quantity'] > $method['quantity']) { $is_spam = TRUE; } //var_dump($method['quantity'], $is_spam); // Using invalid area - if (! $is_spam && isset($method['area'])) { + if ((! $is_spam || ! $asap) && isset($method['area'])) { foreach($pickups as $pickup) { if ($pickup['area'] < 0) { + ++$progress['area']; $is_spam = TRUE; - break; + if ($asap) break; } } } //var_dump($method['area'], $is_spam); // URI uniqueness (and removing non-uniques) - if (! $is_spam && isset($method['non_uniq'])) { + if ((! $is_spam || ! $asap) && isset($method['non_uniq'])) { $uris = array(); foreach ($pickups as $key => $pickup) { $uris[$key] = uri_array_implode($pickup); } $count = count($uris); $uris = array_unique($uris); - $non_uniq += $count - count($uris); - if ($non_uniq > $method['non_uniq']) { + $progress['non_uniq'] += $count - count($uris); + if ($progress['non_uniq'] > $method['non_uniq']) { $is_spam = TRUE; - } else { + } + if (! $asap || ! $is_spam) { foreach (array_diff(array_keys($pickups), array_keys($uris)) as $remove) { unset($pickups[$remove]); @@ -577,18 +589,20 @@ function check_uri_spam($target = '', $method = array()) //var_dump($method['non_uniq'], $is_spam); // Bad host - if (! $is_spam && isset($method['badhost'])) { + if ((! $is_spam || ! $asap) && isset($method['badhost'])) { $hosts = array(); foreach ($pickups as $pickup) { $hosts[] = & $pickup['host']; } - $is_spam = is_badhost(array_unique($hosts)); + $count = is_badhost(array_unique($hosts), $asap); + $progress['badhost'] += $count; + if ($count !== 0) $is_spam = TRUE; } //var_dump($method['badhost'], $is_spam); } } - return array($is_spam, $quantity, $non_uniq); + return array($is_spam, $progress); } // --------------------- diff --git a/spam/spam_pickup.php b/spam/spam_pickup.php index 70efa93..8186694 100644 --- a/spam/spam_pickup.php +++ b/spam/spam_pickup.php @@ -1,5 +1,5 @@ "; } -var_dump('check_uri_spam($msg)', check_uri_spam($msg)); +var_dump('check_uri_spam($msg)', check_uri_spam($msg, array(), FALSE)); //$notify = TRUE; //var_dump('pkwk_spamfilter($msg)', pkwk_spamfilter('A', 'PAGE', array('msg' => $msg))); diff --git a/spam_pickup.php b/spam_pickup.php index 70efa93..8186694 100644 --- a/spam_pickup.php +++ b/spam_pickup.php @@ -1,5 +1,5 @@ "; } -var_dump('check_uri_spam($msg)', check_uri_spam($msg)); +var_dump('check_uri_spam($msg)', check_uri_spam($msg, array(), FALSE)); //$notify = TRUE; //var_dump('pkwk_spamfilter($msg)', pkwk_spamfilter('A', 'PAGE', array('msg' => $msg))); -- 2.11.0