X-Git-Url: http://git.cyclocoop.org/?p=ptitvelo%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fplugins-dist%2Fstatistiques%2Fgenie%2Fvisites.php;fp=www%2Fplugins-dist%2Fstatistiques%2Fgenie%2Fvisites.php;h=8e789abc0b74028e0b90d60eab2e7b479d557799;hp=7f2618aa6eed9e4483f1ebe46db6b44c8690632d;hb=f854641371bdfbaba8fbab6212853d9795ba8cc8;hpb=d18fcb8f27a4016e3fa7b50a9b2255d529dca543 diff --git a/www/plugins-dist/statistiques/genie/visites.php b/www/plugins-dist/statistiques/genie/visites.php index 7f2618a..8e789ab 100644 --- a/www/plugins-dist/statistiques/genie/visites.php +++ b/www/plugins-dist/statistiques/genie/visites.php @@ -207,10 +207,32 @@ function calculer_visites($t) { } } -// -// Calcule les stats en plusieurs etapes -// -// http://code.spip.net/@genie_visites_dist +/** + * Nettoyer les IPs des flooders 24H apres leur dernier passage + */ +function visites_nettoyer_flood(){ + if (is_dir($dir=_DIR_TMP.'flood/')){ + include_spip('inc/invalideur'); + if (!defined('_IP_FLOOD_TTL')) define('_IP_FLOOD_TTL',24*3600); // 24H par defaut + $options = array( + 'mtime' => $_SERVER['REQUEST_TIME'] - _IP_FLOOD_TTL, + ); + purger_repertoire($dir,$options); + } +} + + +/** + * Cron de calcul de statistiques des visites + * + * Calcule les stats en plusieurs étapes + * @uses calculer_visites() + * + * @param int $t + * Timestamp de la dernière exécution de cette tâche + * @return int + * Positif si la tâche a été terminée, négatif pour réexécuter cette tâche +**/ function genie_visites_dist($t) { $encore = calculer_visites($t); @@ -219,6 +241,9 @@ function genie_visites_dist($t) { if ($encore) return (0 - $t); + // nettoyer les IP des floodeurs quand on a fini de compter les stats + visites_nettoyer_flood(); + return 1; } ?>