components/webalizer/patches/webalizer-2.01-10-groupvisit.patch
author Rich Burridge <rich.burridge@oracle.com>
Thu, 06 Apr 2017 11:44:41 -0700
changeset 7843 56b5a2b1ab27
parent 5595 7019066a05e3
permissions -rw-r--r--
25141953 nping --icmp dumps core on SPARC

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;
+            }
          }
       }
    }