/***************************************************************************\
* 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. *
//
// prendre en compte un fichier de visite
//
-// http://doc.spip.org/@compte_fichier_visite
+// http://code.spip.net/@compte_fichier_visite
function compte_fichier_visite($fichier, &$visites, &$visites_a, &$referers, &$referers_a) {
// Noter la visite du site (article 0)
}
-// http://doc.spip.org/@calculer_visites
+// http://code.spip.net/@calculer_visites
function calculer_visites($t) {
include_spip('base/abstract_sql');
}
}
-//
-// Calcule les stats en plusieurs etapes
-//
-// http://doc.spip.org/@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);
if ($encore)
return (0 - $t);
+ // nettoyer les IP des floodeurs quand on a fini de compter les stats
+ visites_nettoyer_flood();
+
return 1;
}
?>