Webalizer : bug du 4 oct 2001
A tous ceux qui utilisent la version stable de webalizer de Debian et
les autres qui même sans utiliser le package debian utilisent webalizer
1.30 ou 2.0.0, regardez vos statistiques web ; elles risquent bien de
s'être arrêtées au 4 octobre.
Visiblement, il y a des problèmes au niveau des timestamps qui sont
calculés en utilisant une fonction jdate refaite et basé sur le 1er
janvier 1990 (?).
Ceci semble entrainer une erreur lors de la vérification du record
timestamp et du current timestamp à ce niveau (version 1.30) :
/* check if less than/equal to last record
processed */
if ( rec_tstamp <= cur_tstamp )
avec
rec_tstamp=((jdate(rec_day,rec_month,rec_year)-epoch)*1000000)+
(rec_hour*10000) + (rec_min*100) + rec_sec;
cur_tstamp=((jdate(cur_day,cur_month,cur_year)-epoch)*1000000)+
(cur_hour*10000) + (cur_min*100) + cur_sec;
et
epoch=jdate(1,1,1990);
========
u_long jdate( int day, int month, int year )
{
u_long days; /* value returned */
int mtable[] = {0,31,59,90,120,151,181,212,243,273,304,334};
/* First, calculate base number including leap and Centenial year
stuff */
days=(((u_long)year*365)+day+mtable[month-1]+
((year+4)/4) - ((year/100)-(year/400)));
/* now adjust for leap year before March 1st */
if ((year % 4 == 0) && !((year % 100 == 0) &&
(year % 400 != 0)) && (month < 3))
--days;
/* done, return with calculated value */
return(days+5);
}
========
La version 2.0.1 n'est à priori pas touché par ce problème, vu que les
calculs de timestamp sont différents...
Exemple de stats bloqués :
http://www.mozilla.org/webalizer/usage_200110.html
http://linuxhelp.dyndns.org/webalizer/usage_200110.html
Solutions :
* Passer à la version 2.0.1, il ne doit pas y avoir de soucis :
http://counter.li.org/webalizer/usage_200110.html
* Calculer epoch à partir du 1/1/1970 au lieu de 1/1/1990
(je ne suis pas certain que ça suffise à corriger le problème).
Site de webalizer :
http://www.webalizer.org/
-------------
Fabien SALVI Centre de Ressources Informatiques
Archamps, France -- http://www.cri74.org
PingOO GNU/linux distribution : http://www.pingoo.org
Reply to: