Found in the wild at:
http://www.oss4aix.org/download/patches/webalizer-2.01-10-groupvisit.patch
https://gitlab.7f.dk/Kralian/oi-userland/blob/ef967b086bc86c4e4af7237f974cb574547bde30/components/webalizer/patches/webalizer-2.01-10-groupvisit.patch
--- webalizer-2.23-08/hashtab.c.orig 2016-03-08 14:40:57.594469202 -0800
+++ webalizer-2.23-08/hashtab.c 2016-03-08 14:46:27.371481210 -0800
@@ -88,6 +88,8 @@
DNODEPTR host_table[MAXHASH]; /* DNS hash table */
#endif /* USE_DNS */
+u_long pre_tstamp = 0; /* prev. real record tstamp */
+
/*********************************************/
/* DEL_HTABS - clear out our hash tables */
/*********************************************/
@@ -179,6 +181,7 @@
nptr->visit=(visit-1);
nptr->lasturl=find_url(lasturl);
nptr->tstamp=tstamp;
+ if ((type!=OBJ_GRP)&&(nptr->flag!=OBJ_GRP)) pre_tstamp=nptr->tstamp;
return 0;
}
else
@@ -188,6 +191,7 @@
if (htab==sm_htab) update_entry(log_rec.url);
nptr->lasturl=find_url(log_rec.url);
nptr->tstamp=tstamp;
+ if ((type!=OBJ_GRP)&&(nptr->flag!=OBJ_GRP)) pre_tstamp=nptr->tstamp;
nptr->visit=1;
}
}
@@ -208,7 +212,8 @@
if (ispage(log_rec.url))
{
- if ((tstamp-cptr->tstamp)>=visit_timeout)
+ if ((type!=OBJ_GRP)&&(cptr->flag!=OBJ_GRP)) pre_tstamp=cptr->tstamp;
+ if ((tstamp-pre_tstamp)>=visit_timeout)
{
cptr->visit++;
if (htab==sm_htab)
@@ -241,6 +246,7 @@
nptr->visit = (visit-1);
nptr->lasturl=find_url(lasturl);
nptr->tstamp= tstamp;
+ if ((type!=OBJ_GRP)&&(nptr->flag!=OBJ_GRP)) pre_tstamp=nptr->tstamp;
return 0;
}
else
@@ -250,6 +256,7 @@
if (htab==sm_htab) update_entry(log_rec.url);
nptr->lasturl=find_url(log_rec.url);
nptr->tstamp= tstamp;
+ if ((type!=OBJ_GRP)&&(nptr->flag!=OBJ_GRP)) pre_tstamp=nptr->tstamp;
nptr->visit=1;
}
}
@@ -845,11 +852,16 @@
{
nptr->visit=(visit-1);
nptr->tstamp=tstamp;
+ if ((type!=OBJ_GRP)&&(nptr->flag!=OBJ_GRP)) pre_tstamp=nptr->tstamp;
return 0;
}
else
{
- if (ispage(log_rec.url)) nptr->tstamp=tstamp;
+ if (ispage(log_rec.url))
+ {
+ nptr->tstamp=tstamp;
+ if ((type!=OBJ_GRP)&&(nptr->flag!=OBJ_GRP)) pre_tstamp=nptr->tstamp;
+ }
}
}
}
@@ -869,7 +881,8 @@
if (ispage(log_rec.url))
{
- if ((tstamp-cptr->tstamp)>=visit_timeout)
+ if ((type!=OBJ_GRP)&&(cptr->flag!=OBJ_GRP)) pre_tstamp=cptr->tstamp;
+ if ((tstamp-pre_tstamp)>=visit_timeout)
cptr->visit++;
cptr->tstamp=tstamp;
}
@@ -893,11 +906,16 @@
{
nptr->visit = (visit-1);
nptr->tstamp= tstamp;
+ if ((type!=OBJ_GRP)&&(nptr->flag!=OBJ_GRP)) pre_tstamp=nptr->tstamp;
return 0;
}
else
{
- if (ispage(log_rec.url)) nptr->tstamp= tstamp;
+ if (ispage(log_rec.url))
+ {
+ nptr->tstamp= tstamp;
+ if ((type!=OBJ_GRP)&&(nptr->flag!=OBJ_GRP)) pre_tstamp=nptr->tstamp;
+ }
}
}
}