X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;ds=sidebyside;f=www%2Fplugins-dist%2Fstatistiques%2Fgenie%2Fvisites.php;h=36e3471db982b2aa555fc335a56592201ea9b96d;hb=cc641eb476987612f6d6df1a5417c1c5582a8ab8;hp=7f2618aa6eed9e4483f1ebe46db6b44c8690632d;hpb=83e62ea97fafb78dde1372b78c1be4c71b5b1b58;p=lhc%2Fweb%2Fclavette_www.git diff --git a/www/plugins-dist/statistiques/genie/visites.php b/www/plugins-dist/statistiques/genie/visites.php index 7f2618a..36e3471 100644 --- a/www/plugins-dist/statistiques/genie/visites.php +++ b/www/plugins-dist/statistiques/genie/visites.php @@ -3,7 +3,7 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2014 * + * Copyright (c) 2001-2016 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * @@ -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; } ?>