Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 98977 | Differences between
and this patch

Collapse All | Expand All

(-)webalizer-2.01-10/hashtab.c (-9 / +35 lines)
Lines 70-76 Link Here
70
UNODEPTR new_unode(char *);                   /* new url node             */
70
UNODEPTR new_unode(char *);                   /* new url node             */
71
RNODEPTR new_rnode(char *);                   /* new referrer node        */
71
RNODEPTR new_rnode(char *);                   /* new referrer node        */
72
ANODEPTR new_anode(char *);                   /* new user agent node      */
72
ANODEPTR new_anode(char *);                   /* new user agent node      */
73
SNODEPTR new_snode(char *);                   /* new search string..      */
73
SNODEPTR new_snode(char *, char *);           /* new search string..      */
74
INODEPTR new_inode(char *);                   /* new ident node           */
74
INODEPTR new_inode(char *);                   /* new ident node           */
75
#ifdef USE_DNS
75
#ifdef USE_DNS
76
DNODEPTR new_dnode(char *);                   /* new DNS node             */
76
DNODEPTR new_dnode(char *);                   /* new DNS node             */
Lines 669-678 Link Here
669
/* NEW_SNODE - Search str node creation      */
669
/* NEW_SNODE - Search str node creation      */
670
/*********************************************/
670
/*********************************************/
671
671
672
SNODEPTR new_snode(char *str)
672
SNODEPTR new_snode(char *str, char *site)
673
{
673
{
674
   SNODEPTR newptr;
674
   SNODEPTR newptr;
675
   char     *sptr;
675
   char     *sptr, *sptr2;
676
676
677
   if (strlen(str) >= MAXSRCHH)
677
   if (strlen(str) >= MAXSRCHH)
678
   {
678
   {
Lines 686-700 Link Here
686
      str[MAXSRCHH-1]=0;
686
      str[MAXSRCHH-1]=0;
687
   }
687
   }
688
688
689
   if (strlen(site) >= MAXSRCHH)
690
   {
691
      if (verbose)
692
      {
693
         fprintf(stderr,"[new_snode] %s (%d)",msg_big_one,strlen(site));
694
         if (debug_mode)
695
            fprintf(stderr,":\n--> %s",site);
696
         fprintf(stderr,"\n");
697
      }
698
      site[MAXSRCHH-1]=0;
699
   }
700
689
   if ( (sptr=malloc(strlen(str)+1))==NULL ) return (SNODEPTR)NULL;
701
   if ( (sptr=malloc(strlen(str)+1))==NULL ) return (SNODEPTR)NULL;
690
   strcpy(sptr,str);
702
   strcpy(sptr,str);
691
703
704
   if ( (sptr2=malloc(strlen(site)+1))==NULL )
705
   {
706
       free(sptr);
707
       return (SNODEPTR)NULL;
708
   }
709
   strcpy(sptr2,site);
710
692
   if (( newptr = malloc(sizeof(struct snode))) != NULL)
711
   if (( newptr = malloc(sizeof(struct snode))) != NULL)
693
   {
712
   {
694
      newptr->string= sptr;
713
      newptr->string= sptr;
714
      newptr->site= sptr2;
695
      newptr->count = 1;
715
      newptr->count = 1;
696
   }
716
   }
697
   else free(sptr);
717
   else
718
   {
719
   free(sptr);
720
   free(sptr2);
721
   }
698
   return newptr;
722
   return newptr;
699
}
723
}
700
724
Lines 702-718 Link Here
702
/* PUT_SNODE - insert/update search str node */
726
/* PUT_SNODE - insert/update search str node */
703
/*********************************************/
727
/*********************************************/
704
728
705
int put_snode(char *str, u_long count, SNODEPTR *htab)
729
int put_snode(char *str, char *site, u_long count, SNODEPTR *htab)
706
{
730
{
707
   SNODEPTR cptr,nptr;
731
   SNODEPTR cptr,nptr;
708
732
709
   if (str[0]==0 || str[0]==' ') return 0;     /* skip bad search strs */
733
   if (str[0]==' ') return 0;     /* skip bad search strs */
734
   if (site[0]==' ') return 0;     /* skip bad search strs */
710
735
711
   /* check if hashed */
736
   /* check if hashed */
712
   if ( (cptr = htab[hash(str)]) == NULL)
737
   if ( (cptr = htab[hash(str)]) == NULL)
713
   {
738
   {
714
      /* not hashed */
739
      /* not hashed */
715
      if ( (nptr=new_snode(str)) != NULL)
740
      if ( (nptr=new_snode(str,site)) != NULL)
716
      {
741
      {
717
         nptr->count = count;
742
         nptr->count = count;
718
         nptr->next = NULL;
743
         nptr->next = NULL;
Lines 724-730 Link Here
724
      /* hashed */
749
      /* hashed */
725
      while (cptr != NULL)
750
      while (cptr != NULL)
726
      {
751
      {
727
         if (strcmp(cptr->string,str)==0)
752
         if (strcmp(cptr->string,str)==0 && strcmp(cptr->site,site)==0)
728
         {
753
         {
729
            /* found... bump counter */
754
            /* found... bump counter */
730
            cptr->count+=count;
755
            cptr->count+=count;
Lines 733-739 Link Here
733
         cptr = cptr->next;
758
         cptr = cptr->next;
734
      }
759
      }
735
      /* not found... */
760
      /* not found... */
736
      if ( (nptr = new_snode(str)) != NULL)
761
      if ( (nptr = new_snode(str,site)) != NULL)
737
      {
762
      {
738
         nptr->count = count;
763
         nptr->count = count;
739
         nptr->next  = htab[hash(str)];
764
         nptr->next  = htab[hash(str)];
Lines 762-767 Link Here
762
         {
787
         {
763
            temp = aptr->next;
788
            temp = aptr->next;
764
            free (aptr->string);
789
            free (aptr->string);
790
            free (aptr->site);
765
            free (aptr);
791
            free (aptr);
766
            aptr = temp;
792
            aptr = temp;
767
         }
793
         }
(-)webalizer-2.01-10/hashtab.h (-1 / +2 lines)
Lines 53-58 Link Here
53
              struct anode *next; };
53
              struct anode *next; };
54
54
55
struct snode {  char *string;                 /* search string struct      */
55
struct snode {  char *string;                 /* search string struct      */
56
                char *site;
56
              u_long count;
57
              u_long count;
57
              struct snode *next; };
58
              struct snode *next; };
58
59
Lines 84-90 Link Here
84
                        u_long, u_long, INODEPTR *);
85
                        u_long, u_long, INODEPTR *);
85
extern int    put_rnode(char *, int, u_long, u_long *, RNODEPTR *);
86
extern int    put_rnode(char *, int, u_long, u_long *, RNODEPTR *);
86
extern int    put_anode(char *, int, u_long, u_long *, ANODEPTR *);
87
extern int    put_anode(char *, int, u_long, u_long *, ANODEPTR *);
87
extern int    put_snode(char *, u_long, SNODEPTR *);
88
extern int    put_snode(char *, char *, u_long, SNODEPTR *);
88
89
89
#ifdef USE_DNS
90
#ifdef USE_DNS
90
extern int    put_dnode(char *, struct in_addr *, DNODEPTR *);
91
extern int    put_dnode(char *, struct in_addr *, DNODEPTR *);
(-)webalizer-2.01-10/lang/webalizer_lang.english (-1 / +9 lines)
Lines 201-206 Link Here
201
char *msg_h_ref   = "Referrer";
201
char *msg_h_ref   = "Referrer";
202
char *msg_h_ctry  = "Country";
202
char *msg_h_ctry  = "Country";
203
char *msg_h_search= "Search String";
203
char *msg_h_search= "Search String";
204
char *msg_h_seasit= "Search Site";
205
char *msg_h_seabot= "Search Site/String";
204
char *msg_h_uname = "Username";
206
char *msg_h_uname = "Username";
205
207
206
/* links along top of page */
208
/* links along top of page */
Lines 213-219 Link Here
213
char *msg_hlnk_r  = "Referrers";
215
char *msg_hlnk_r  = "Referrers";
214
char *msg_hlnk_en = "Entry";
216
char *msg_hlnk_en = "Entry";
215
char *msg_hlnk_ex = "Exit";
217
char *msg_hlnk_ex = "Exit";
216
char *msg_hlnk_sr = "Search";
218
char *msg_hlnk_sr = "Search Strings";
219
char *msg_hlnk_srs= "Search Sites";
220
char *msg_hlnk_srb= "Search Site/Strings";
217
char *msg_hlnk_i  = "Users";
221
char *msg_hlnk_i  = "Users";
218
222
219
/* monthly total table */
223
/* monthly total table */
Lines 255-266 Link Here
255
char *msg_top_en  = "Total Entry Pages";
259
char *msg_top_en  = "Total Entry Pages";
256
char *msg_top_ex  = "Total Exit Pages";
260
char *msg_top_ex  = "Total Exit Pages";
257
char *msg_top_sr  = "Total Search Strings";
261
char *msg_top_sr  = "Total Search Strings";
262
char *msg_top_srs = "Total Search Sites";
263
char *msg_top_srb = "Total Search Site/String Pairs";
258
char *msg_top_i   = "Total Usernames";
264
char *msg_top_i   = "Total Usernames";
259
char *msg_v_sites = "View All Sites";
265
char *msg_v_sites = "View All Sites";
260
char *msg_v_urls  = "View All URLs";
266
char *msg_v_urls  = "View All URLs";
261
char *msg_v_refs  = "View All Referrers";
267
char *msg_v_refs  = "View All Referrers";
262
char *msg_v_agents= "View All User Agents";
268
char *msg_v_agents= "View All User Agents";
263
char *msg_v_search= "View All Search Strings";
269
char *msg_v_search= "View All Search Strings";
270
char *msg_v_seasit= "View All Search Sites";
271
char *msg_v_seabot= "View All Search Site/String Pairs";
264
char *msg_v_users = "View All Usernames";
272
char *msg_v_users = "View All Usernames";
265
273
266
/* short month names MUST BE 3 CHARS in size... pad if needed*/
274
/* short month names MUST BE 3 CHARS in size... pad if needed*/
(-)webalizer-2.01-10/lang.h (+8 lines)
Lines 107-112 Link Here
107
extern char *msg_h_ref   ;
107
extern char *msg_h_ref   ;
108
extern char *msg_h_ctry  ;
108
extern char *msg_h_ctry  ;
109
extern char *msg_h_search;
109
extern char *msg_h_search;
110
extern char *msg_h_seasit;
111
extern char *msg_h_seabot;
110
extern char *msg_h_uname ;
112
extern char *msg_h_uname ;
111
113
112
extern char *msg_hlnk_ds ;
114
extern char *msg_hlnk_ds ;
Lines 119-124 Link Here
119
extern char *msg_hlnk_en ;
121
extern char *msg_hlnk_en ;
120
extern char *msg_hlnk_ex ;
122
extern char *msg_hlnk_ex ;
121
extern char *msg_hlnk_sr ;
123
extern char *msg_hlnk_sr ;
124
extern char *msg_hlnk_srs;
125
extern char *msg_hlnk_srb;
122
extern char *msg_hlnk_i  ;
126
extern char *msg_hlnk_i  ;
123
127
124
extern char *msg_mtot_ms ;
128
extern char *msg_mtot_ms ;
Lines 154-165 Link Here
154
extern char *msg_top_en  ;
158
extern char *msg_top_en  ;
155
extern char *msg_top_ex  ;
159
extern char *msg_top_ex  ;
156
extern char *msg_top_sr  ;
160
extern char *msg_top_sr  ;
161
extern char *msg_top_srs ;
162
extern char *msg_top_srb ;
157
extern char *msg_top_i   ;
163
extern char *msg_top_i   ;
158
extern char *msg_v_sites ;
164
extern char *msg_v_sites ;
159
extern char *msg_v_urls  ;
165
extern char *msg_v_urls  ;
160
extern char *msg_v_refs  ;
166
extern char *msg_v_refs  ;
161
extern char *msg_v_agents;
167
extern char *msg_v_agents;
162
extern char *msg_v_search;
168
extern char *msg_v_search;
169
extern char *msg_v_seasit;
170
extern char *msg_v_seabot;
163
extern char *msg_v_users ;
171
extern char *msg_v_users ;
164
172
165
extern char *msg_title   ;
173
extern char *msg_title   ;
(-)webalizer-2.01-10/linklist.c (-7 / +28 lines)
Lines 71-77 Link Here
71
GLISTPTR new_glist(char *, char *);                 /* new group list node */
71
GLISTPTR new_glist(char *, char *);                 /* new group list node */
72
void     del_glist(GLISTPTR *);                     /* del group list      */
72
void     del_glist(GLISTPTR *);                     /* del group list      */
73
73
74
int      isinstr(char *, char *);
74
int      isinstr(const char *, const char *);
75
75
76
/* Linkded list pointers */
76
/* Linkded list pointers */
77
GLISTPTR group_sites   = NULL;                /* "group" lists            */
77
GLISTPTR group_sites   = NULL;                /* "group" lists            */
Lines 240-246 Link Here
240
/* ISINLIST - Test if string is in list      */
240
/* ISINLIST - Test if string is in list      */
241
/*********************************************/
241
/*********************************************/
242
242
243
char *isinlist(NLISTPTR list, char *str)
243
char *isinlist(NLISTPTR list, const char *str)
244
{
244
{
245
   NLISTPTR lptr;
245
   NLISTPTR lptr;
246
246
Lines 257-270 Link Here
257
/* ISINGLIST - Test if string is in list     */
257
/* ISINGLIST - Test if string is in list     */
258
/*********************************************/
258
/*********************************************/
259
259
260
char *isinglist(GLISTPTR list, char *str)
260
char *isinglist(GLISTPTR list, const char *str)
261
{
261
{
262
   GLISTPTR lptr;
262
   GLISTPTR lptr;
263
263
264
   lptr=list;
264
   lptr=list;
265
   while (lptr!=NULL)
265
   while (lptr!=NULL)
266
   {
266
   {
267
      if (isinstr(str,lptr->string)) return lptr->name;
267
      if (isinstr((const char *)str,(const char *)lptr->string)) return lptr->name;
268
      lptr=lptr->next;
269
   }
270
   return NULL;
271
}
272
273
/*********************************************/
274
/* NAMEINGLIST - Test if string is in list   */
275
/*********************************************/
276
277
char *nameinglist(GLISTPTR list, const char *str, char **string)
278
{
279
   GLISTPTR lptr;
280
281
   lptr=list;
282
   while (lptr!=NULL)
283
   {
284
      if (isinstr(str,lptr->string))
285
      {
286
         if(string != NULL) *string=lptr->string;
287
         return lptr->name;
288
      }
268
      lptr=lptr->next;
289
      lptr=lptr->next;
269
   }
290
   }
270
   return NULL;
291
   return NULL;
Lines 274-282 Link Here
274
/* ISINSTR - Scan for string in string       */
295
/* ISINSTR - Scan for string in string       */
275
/*********************************************/
296
/*********************************************/
276
297
277
int isinstr(char *str, char *cp)
298
int isinstr(const char *str, const char *cp)
278
{
299
{
279
   char *cp1,*cp2;
300
   const char *cp1,*cp2;
280
301
281
   cp1=(cp+strlen(cp))-1;
302
   cp1=(cp+strlen(cp))-1;
282
   if (*cp=='*')
303
   if (*cp=='*')
Lines 303-308 Link Here
303
         if (*cp1++!=*cp2++) return 0;
324
         if (*cp1++!=*cp2++) return 0;
304
      }
325
      }
305
      if (*cp1=='*') return 1;
326
      if (*cp1=='*') return 1;
306
         else return 0;
327
	 else return 0;
307
   }
328
   }
308
}
329
}
(-)webalizer-2.01-10/linklist.h (-2 / +4 lines)
Lines 40-47 Link Here
40
extern NLISTPTR page_type     ;               /* page view types           */
40
extern NLISTPTR page_type     ;               /* page view types           */
41
extern GLISTPTR search_list   ;               /* Search engine list        */
41
extern GLISTPTR search_list   ;               /* Search engine list        */
42
42
43
extern char     *isinlist(NLISTPTR, char *);        /* scan list for str   */
43
extern char     *isinlist(NLISTPTR, const char *);  /* scan list for str   */
44
extern char     *isinglist(GLISTPTR, char *);       /* scan glist for str  */
44
extern char     *isinglist(GLISTPTR, const char *); /* scan glist for str  */
45
extern char     *nameinglist(GLISTPTR, const char *,
46
                             char **);              /* scan glist for str  */
45
extern int      add_nlist(char *, NLISTPTR *);      /* add list item       */
47
extern int      add_nlist(char *, NLISTPTR *);      /* add list item       */
46
extern int      add_glist(char *, GLISTPTR *);      /* add group list item */
48
extern int      add_glist(char *, GLISTPTR *);      /* add group list item */
47
49
(-)webalizer-2.01-10/output.c (-5 / +270 lines)
Lines 81-86 Link Here
81
void    top_agents_table();                         /* top n u-agents  ""  */
81
void    top_agents_table();                         /* top n u-agents  ""  */
82
void    top_ctry_table();                           /* top n countries ""  */
82
void    top_ctry_table();                           /* top n countries ""  */
83
void    top_search_table();                         /* top n search strs   */
83
void    top_search_table();                         /* top n search strs   */
84
void    top_searchsite_table();                     /* top n search strs   */
85
void    top_searchboth_table();                     /* top n search strs   */
84
void    top_users_table();                          /* top n ident table   */
86
void    top_users_table();                          /* top n ident table   */
85
u_long  load_url_array(  UNODEPTR *);               /* load URL array      */
87
u_long  load_url_array(  UNODEPTR *);               /* load URL array      */
86
u_long  load_site_array( HNODEPTR *);               /* load Site array     */
88
u_long  load_site_array( HNODEPTR *);               /* load Site array     */
Lines 105-110 Link Here
105
int     all_refs_page(u_long, u_long);              /* output refs page    */
107
int     all_refs_page(u_long, u_long);              /* output refs page    */
106
int     all_agents_page(u_long, u_long);            /* output agents page  */
108
int     all_agents_page(u_long, u_long);            /* output agents page  */
107
int     all_search_page(u_long, u_long);            /* output search page  */
109
int     all_search_page(u_long, u_long);            /* output search page  */
110
int     all_searchsite_page(u_long, u_long);            /* output search page  */
111
int     all_searchboth_page(u_long, u_long);        /* output search page  */
108
int     all_users_page(u_long, u_long);             /* output ident page   */
112
int     all_users_page(u_long, u_long);             /* output ident page   */
109
void    dump_all_sites();                           /* dump sites tab file */
113
void    dump_all_sites();                           /* dump sites tab file */
110
void    dump_all_urls();                            /* dump urls tab file  */
114
void    dump_all_urls();                            /* dump urls tab file  */
Lines 417-426 Link Here
417
    if ( (s_array=malloc(sizeof(SNODEPTR)*(a_ctr))) != NULL)
421
    if ( (s_array=malloc(sizeof(SNODEPTR)*(a_ctr))) != NULL)
418
    {
422
    {
419
     a_ctr=load_srch_array(s_array);
423
     a_ctr=load_srch_array(s_array);
420
     if (ntop_search || dump_search)
424
     if (ntop_search || ntop_searchsite || ntop_searchboth || dump_search)
421
     {
425
     {
422
       qsort(s_array,a_ctr,sizeof(SNODEPTR),qs_srch_cmph);
426
       qsort(s_array,a_ctr,sizeof(SNODEPTR),qs_srch_cmph);
423
       if (ntop_search) top_search_table(); /* top search strings table     */
427
       if (ntop_search) top_search_table(); /* top search strings table     */
428
       if (ntop_searchsite) top_searchsite_table(); /* top search strings table     */
429
       if (ntop_searchboth) top_searchboth_table(); /* top search strings table     */
424
       if (dump_search) dump_all_search();  /* dump search string tab file  */
430
       if (dump_search) dump_all_search();  /* dump search string tab file  */
425
     }
431
     }
426
     free(s_array);
432
     free(s_array);
Lines 492-497 Link Here
492
      fprintf(out_fp,"<A HREF=\"#TOPREFS\">[%s]</A>\n",msg_hlnk_r);
498
      fprintf(out_fp,"<A HREF=\"#TOPREFS\">[%s]</A>\n",msg_hlnk_r);
493
   if (ntop_search && t_ref)
499
   if (ntop_search && t_ref)
494
      fprintf(out_fp,"<A HREF=\"#TOPSEARCH\">[%s]</A>\n",msg_hlnk_sr);
500
      fprintf(out_fp,"<A HREF=\"#TOPSEARCH\">[%s]</A>\n",msg_hlnk_sr);
501
   if (ntop_searchsite && t_ref)
502
      fprintf(out_fp,"<A HREF=\"#TOPSEARCHSITE\">[%s]</A>\n",msg_hlnk_srs);
503
   if (ntop_searchboth && t_ref)
504
      fprintf(out_fp,"<A HREF=\"#TOPSEARCHBOTH\">[%s]</A>\n",msg_hlnk_srb);
495
   if (ntop_users && t_user)
505
   if (ntop_users && t_user)
496
      fprintf(out_fp,"<A HREF=\"#TOPUSERS\">[%s]</A>\n",msg_hlnk_i);
506
      fprintf(out_fp,"<A HREF=\"#TOPUSERS\">[%s]</A>\n",msg_hlnk_i);
497
   if (ntop_agents && t_agent)
507
   if (ntop_agents && t_agent)
Lines 1628-1640 Link Here
1628
1638
1629
   if ( (t_ref==0)||(a_ctr==0)) return;   /* don't bother if none to do    */
1639
   if ( (t_ref==0)||(a_ctr==0)) return;   /* don't bother if none to do    */
1630
1640
1631
   cnt=tot_num=a_ctr; pointer=s_array;
1641
   cnt=a_ctr; pointer=s_array;
1642
   tot_num=0;
1632
   while(cnt--)
1643
   while(cnt--)
1633
   {
1644
   {
1645
      if(strlen((char *)((SNODEPTR)(*pointer)->site)))
1646
      {
1647
         pointer++; continue;
1648
      }
1634
      t_val+=(u_long)((SNODEPTR)(*pointer)->count);
1649
      t_val+=(u_long)((SNODEPTR)(*pointer)->count);
1650
      tot_num++;
1635
      pointer++;
1651
      pointer++;
1636
   }
1652
   }
1637
1653
1654
   cnt=tot_num;
1638
   if ( tot_num > ntop_search) tot_num=ntop_search;
1655
   if ( tot_num > ntop_search) tot_num=ntop_search;
1639
1656
1640
   fprintf(out_fp,"<A NAME=\"TOPSEARCH\"></A>\n");
1657
   fprintf(out_fp,"<A NAME=\"TOPSEARCH\"></A>\n");
Lines 1642-1648 Link Here
1642
   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
1659
   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
1643
   fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=CENTER COLSPAN=4>"        \
1660
   fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=CENTER COLSPAN=4>"        \
1644
          "%s %lu %s %lu %s</TH></TR>\n",
1661
          "%s %lu %s %lu %s</TH></TR>\n",
1645
          GREY, msg_top_top, tot_num, msg_top_of, a_ctr, msg_top_sr);
1662
          GREY, msg_top_top, tot_num, msg_top_of, cnt, msg_top_sr);
1646
   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
1663
   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
1647
   fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=center>"                  \
1664
   fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=center>"                  \
1648
          "<FONT SIZE=\"-1\">#</FONT></TH>\n",
1665
          "<FONT SIZE=\"-1\">#</FONT></TH>\n",
Lines 1659-1664 Link Here
1659
   while(tot_num)
1676
   while(tot_num)
1660
   {
1677
   {
1661
      sptr=*pointer++;
1678
      sptr=*pointer++;
1679
      if(strlen(sptr->site)) continue;
1662
      fprintf(out_fp,
1680
      fprintf(out_fp,
1663
         "<TR>\n"                                                     \
1681
         "<TR>\n"                                                     \
1664
         "<TD ALIGN=center><FONT SIZE=\"-1\"><B>%d</B></FONT></TD>\n" \
1682
         "<TD ALIGN=center><FONT SIZE=\"-1\"><B>%d</B></FONT></TD>\n" \
Lines 1674-1680 Link Here
1674
   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
1692
   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
1675
   if ( (all_search) && (a_ctr>ntop_search) )
1693
   if ( (all_search) && (a_ctr>ntop_search) )
1676
   {
1694
   {
1677
      if (all_search_page(a_ctr, t_val))
1695
      if (all_search_page(cnt, t_val))
1678
      {
1696
      {
1679
         fprintf(out_fp,"<TR BGCOLOR=\"%s\">",GRPCOLOR);
1697
         fprintf(out_fp,"<TR BGCOLOR=\"%s\">",GRPCOLOR);
1680
         fprintf(out_fp,"<TD COLSPAN=4 ALIGN=\"center\">\n");
1698
         fprintf(out_fp,"<TD COLSPAN=4 ALIGN=\"center\">\n");
Lines 1687-1692 Link Here
1687
   fprintf(out_fp,"</TABLE>\n<P>\n");
1705
   fprintf(out_fp,"</TABLE>\n<P>\n");
1688
}
1706
}
1689
1707
1708
/***********************************************/
1709
/* TOP_SEARCHSITE_TABLE - generate top n table */
1710
/***********************************************/
1711
1712
void top_searchsite_table()
1713
{
1714
   u_long   cnt,t_val=0, tot_num;
1715
   int      i;
1716
   SNODEPTR sptr, *pointer;
1717
1718
   if ( (t_ref==0)||(a_ctr==0)) return;   /* don't bother if none to do    */
1719
1720
   cnt=a_ctr; pointer=s_array;
1721
   tot_num=0;
1722
   while(cnt--)
1723
   {
1724
      if(strlen((char *)((SNODEPTR)(*pointer)->string)))
1725
      {
1726
         pointer++; continue;
1727
      }
1728
      t_val+=(u_long)((SNODEPTR)(*pointer)->count);
1729
      tot_num++;
1730
      pointer++;
1731
   }
1732
1733
   cnt=tot_num;
1734
   if ( tot_num > ntop_searchsite) tot_num=ntop_searchsite;
1735
1736
   fprintf(out_fp,"<A NAME=\"TOPSEARCHSITE\"></A>\n");
1737
   fprintf(out_fp,"<TABLE WIDTH=510 BORDER=2 CELLSPACING=1 CELLPADDING=1>\n");
1738
   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
1739
   fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=CENTER COLSPAN=4>"        \
1740
          "%s %lu %s %lu %s</TH></TR>\n",
1741
          GREY, msg_top_top, tot_num, msg_top_of, cnt, msg_top_srs);
1742
   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
1743
   fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=center>"                  \
1744
          "<FONT SIZE=\"-1\">#</FONT></TH>\n",
1745
          GREY);
1746
   fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"            \
1747
          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",
1748
          DKGREEN,msg_h_hits);
1749
   fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center>"                      \
1750
          "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",
1751
          CYAN,msg_h_seasit);
1752
   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
1753
1754
   pointer=s_array; i=0;
1755
   while(tot_num)
1756
   {
1757
      sptr=*pointer++;
1758
      if(strlen(sptr->string)) continue;
1759
      fprintf(out_fp,
1760
         "<TR>\n"                                                     \
1761
         "<TD ALIGN=center><FONT SIZE=\"-1\"><B>%d</B></FONT></TD>\n" \
1762
         "<TD ALIGN=right><FONT SIZE=\"-1\"><B>%lu</B></FONT></TD>\n" \
1763
         "<TD ALIGN=right><FONT SIZE=\"-2\">%3.02f%%</FONT></TD>\n"   \
1764
         "<TD ALIGN=left NOWRAP><FONT SIZE=\"-1\">",
1765
         i+1,sptr->count,
1766
         (t_val==0)?0:((float)sptr->count/t_val)*100.0);
1767
      fprintf(out_fp,"%s</FONT></TD></TR>\n",sptr->site);
1768
      tot_num--;
1769
      i++;
1770
   }
1771
   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
1772
   if ( (all_searchsites) && (cnt>ntop_searchsite) )
1773
   {
1774
      if (all_searchsite_page(a_ctr, t_val))
1775
      {
1776
         fprintf(out_fp,"<TR BGCOLOR=\"%s\">",GRPCOLOR);
1777
         fprintf(out_fp,"<TD COLSPAN=4 ALIGN=\"center\">\n");
1778
         fprintf(out_fp,"<FONT SIZE=\"-1\">");
1779
         fprintf(out_fp,"<A HREF=\"./searchsite_%04d%02d.%s\">",
1780
                 cur_year,cur_month,html_ext);
1781
         fprintf(out_fp,"%s</A></TD></TR>\n",msg_v_seasit);
1782
      }
1783
   }
1784
   fprintf(out_fp,"</TABLE>\n<P>\n");
1785
}
1786
1787
/***********************************************/
1788
/* TOP_SEARCHBOTH_TABLE - generate top n table */
1789
/***********************************************/
1790
1791
void top_searchboth_table()
1792
{
1793
   u_long   cnt,t_val=0, tot_num;
1794
   int      i;
1795
   SNODEPTR sptr, *pointer;
1796
1797
   if ( (t_ref==0)||(a_ctr==0)) return;   /* don't bother if none to do    */
1798
1799
   cnt=a_ctr; pointer=s_array;
1800
   tot_num=0;
1801
   while(cnt--)
1802
   {
1803
      if(!strlen((char *)((SNODEPTR)(*pointer)->string))||!strlen((char *)((SNODEPTR)(*pointer)->site)))
1804
      {
1805
         pointer++; continue;
1806
      }
1807
      t_val+=(u_long)((SNODEPTR)(*pointer)->count);
1808
      tot_num++;
1809
      pointer++;
1810
   }
1811
1812
   cnt=tot_num;
1813
   if ( tot_num > ntop_searchboth) tot_num=ntop_searchboth;
1814
1815
   fprintf(out_fp,"<A NAME=\"TOPSEARCHBOTH\"></A>\n");
1816
   fprintf(out_fp,"<TABLE WIDTH=510 BORDER=2 CELLSPACING=1 CELLPADDING=1>\n");
1817
   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
1818
   fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=CENTER COLSPAN=4>"        \
1819
          "%s %lu %s %lu %s</TH></TR>\n",
1820
          GREY, msg_top_top, tot_num, msg_top_of, cnt, msg_top_srb);
1821
   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
1822
   fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" ALIGN=center>"                  \
1823
          "<FONT SIZE=\"-1\">#</FONT></TH>\n",
1824
          GREY);
1825
   fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center COLSPAN=2>"            \
1826
          "<FONT SIZE=\"-1\">%s</FONT></TH>\n",
1827
          DKGREEN,msg_h_hits);
1828
   fprintf(out_fp,"<TH BGCOLOR=\"%s\" ALIGN=center>"                      \
1829
          "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",
1830
          CYAN,msg_h_seabot);
1831
   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
1832
1833
   pointer=s_array; i=0;
1834
   while(tot_num)
1835
   {
1836
      sptr=*pointer++;
1837
      if(!strlen(sptr->string) || !strlen(sptr->site)) continue;
1838
      fprintf(out_fp,
1839
         "<TR>\n"                                                     \
1840
         "<TD ALIGN=center><FONT SIZE=\"-1\"><B>%d</B></FONT></TD>\n" \
1841
         "<TD ALIGN=right><FONT SIZE=\"-1\"><B>%lu</B></FONT></TD>\n" \
1842
         "<TD ALIGN=right><FONT SIZE=\"-2\">%3.02f%%</FONT></TD>\n"   \
1843
         "<TD ALIGN=left NOWRAP><FONT SIZE=\"-1\">",
1844
         i+1,sptr->count,
1845
         (t_val==0)?0:((float)sptr->count/t_val)*100.0);
1846
      fprintf(out_fp,"%s -&gt; %s</FONT></TD></TR>\n",sptr->site,sptr->string);
1847
      tot_num--;
1848
      i++;
1849
   }
1850
   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");
1851
   if ( (all_searchboth) && (cnt>ntop_searchboth) )
1852
   {
1853
      if (all_searchboth_page(a_ctr, t_val))
1854
      {
1855
         fprintf(out_fp,"<TR BGCOLOR=\"%s\">",GRPCOLOR);
1856
         fprintf(out_fp,"<TD COLSPAN=4 ALIGN=\"center\">\n");
1857
         fprintf(out_fp,"<FONT SIZE=\"-1\">");
1858
         fprintf(out_fp,"<A HREF=\"./searchboth_%04d%02d.%s\">",
1859
                 cur_year,cur_month,html_ext);
1860
         fprintf(out_fp,"%s</A></TD></TR>\n",msg_v_seabot);
1861
      }
1862
   }
1863
   fprintf(out_fp,"</TABLE>\n<P>\n");
1864
}
1865
1690
/*********************************************/
1866
/*********************************************/
1691
/* ALL_SEARCH_PAGE - HTML for search strings */
1867
/* ALL_SEARCH_PAGE - HTML for search strings */
1692
/*********************************************/
1868
/*********************************************/
Lines 1717-1722 Link Here
1717
   while(tot_num)
1893
   while(tot_num)
1718
   {
1894
   {
1719
      sptr=*pointer++;
1895
      sptr=*pointer++;
1896
      if(strlen(sptr->site)) continue;
1897
      fprintf(out_fp,"%-8lu %6.02f%%  %s\n",
1898
         sptr->count,
1899
         (t_val==0)?0:((float)sptr->count/t_val)*100.0,
1900
         sptr->string);
1901
      tot_num--;
1902
   }
1903
   fprintf(out_fp,"</PRE></FONT>\n");
1904
   write_html_tail(out_fp);
1905
   fclose(out_fp);
1906
   return 1;
1907
}
1908
1909
/*************************************************/
1910
/* ALL_SEARCHSITE_PAGE - HTML for search strings */
1911
/*************************************************/
1912
1913
int all_searchsite_page(u_long tot_num, u_long t_val)
1914
{
1915
   SNODEPTR sptr, *pointer;
1916
   char     search_fname[256], buffer[256];
1917
   FILE     *out_fp;
1918
1919
   if (!tot_num) return 0;
1920
1921
   /* generate file name */
1922
   sprintf(search_fname,"searchsite_%04d%02d.%s",cur_year,cur_month,html_ext);
1923
1924
   /* open file */
1925
   if ( (out_fp=open_out_file(search_fname))==NULL ) return 0;
1926
1927
   sprintf(buffer,"%s %d - %s",l_month[cur_month-1],cur_year,msg_h_seasit);
1928
   write_html_head(buffer, out_fp);
1929
1930
   fprintf(out_fp,"<FONT SIZE=\"-1\"></CENTER><PRE>\n");
1931
1932
   fprintf(out_fp," %12s      %s\n",msg_h_hits,msg_h_seasit);
1933
   fprintf(out_fp,"----------------  ----------------------\n\n");
1934
1935
   pointer=s_array;
1936
   while(tot_num)
1937
   {
1938
      sptr=*pointer++;
1939
      if(strlen(sptr->string)) continue;
1940
      fprintf(out_fp,"%-8lu %6.02f%%  %s\n",
1941
         sptr->count,
1942
         (t_val==0)?0:((float)sptr->count/t_val)*100.0,
1943
         sptr->string);
1944
      tot_num--;
1945
   }
1946
   fprintf(out_fp,"</PRE></FONT>\n");
1947
   write_html_tail(out_fp);
1948
   fclose(out_fp);
1949
   return 1;
1950
}
1951
1952
1953
/*************************************************/
1954
/* ALL_SEARCHSITE_PAGE - HTML for search strings */
1955
/*************************************************/
1956
1957
int all_searchboth_page(u_long tot_num, u_long t_val)
1958
{
1959
   SNODEPTR sptr, *pointer;
1960
   char     search_fname[256], buffer[256];
1961
   FILE     *out_fp;
1962
1963
   if (!tot_num) return 0;
1964
1965
   /* generate file name */
1966
   sprintf(search_fname,"searchsite_%04d%02d.%s",cur_year,cur_month,html_ext);
1967
1968
   /* open file */
1969
   if ( (out_fp=open_out_file(search_fname))==NULL ) return 0;
1970
1971
   sprintf(buffer,"%s %d - %s",l_month[cur_month-1],cur_year,msg_h_seabot);
1972
   write_html_head(buffer, out_fp);
1973
1974
   fprintf(out_fp,"<FONT SIZE=\"-1\"></CENTER><PRE>\n");
1975
1976
   fprintf(out_fp," %12s      %s\n",msg_h_hits,msg_h_seabot);
1977
   fprintf(out_fp,"----------------  ----------------------\n\n");
1978
1979
   pointer=s_array;
1980
   while(tot_num)
1981
   {
1982
      sptr=*pointer++;
1983
      if(!strlen(sptr->string) || !strlen(sptr->site)) continue;
1720
      fprintf(out_fp,"%-8lu %6.02f%%  %s\n",
1984
      fprintf(out_fp,"%-8lu %6.02f%%  %s\n",
1721
         sptr->count,
1985
         sptr->count,
1722
         (t_val==0)?0:((float)sptr->count/t_val)*100.0,
1986
         (t_val==0)?0:((float)sptr->count/t_val)*100.0,
Lines 2284-2290 Link Here
2284
   while(cnt)
2548
   while(cnt)
2285
   {
2549
   {
2286
      sptr=*pointer++;
2550
      sptr=*pointer++;
2287
      fprintf(out_fp,"%lu\t%s\n",sptr->count,sptr->string);
2551
      if(!strlen(sptr->site) || !strlen(sptr->string)) continue;
2552
      fprintf(out_fp,"%lu\t%s\t%s\n",sptr->count,sptr->string,sptr->site);
2288
      cnt--;
2553
      cnt--;
2289
   }
2554
   }
2290
   fclose(out_fp);
2555
   fclose(out_fp);
(-)webalizer-2.01-10/preserve.c (-2 / +7 lines)
Lines 352-358 Link Here
352
      sptr=sr_htab[i];
352
      sptr=sr_htab[i];
353
      while (sptr!=NULL)
353
      while (sptr!=NULL)
354
      {
354
      {
355
         sprintf(buffer,"%s\n%lu\n", sptr->string,sptr->count);
355
         sprintf(buffer,"%s\n%s\n%lu\n", sptr->string,sptr->site,sptr->count);
356
         if (fputs(buffer,fp)==EOF) return 1;  /* error exit */
356
         if (fputs(buffer,fp)==EOF) return 1;  /* error exit */
357
         sptr=sptr->next;
357
         sptr=sptr->next;
358
      }
358
      }
Lines 402-407 Link Here
402
402
403
   char   buffer[BUFSIZE];
403
   char   buffer[BUFSIZE];
404
   char   tmp_buf[BUFSIZE];
404
   char   tmp_buf[BUFSIZE];
405
   char   tmp_buf2[BUFSIZE];
405
406
406
   u_long ul_bogus=0;
407
   u_long ul_bogus=0;
407
408
Lines 657-669 Link Here
657
      tmp_buf[strlen(buffer)-1]=0;
658
      tmp_buf[strlen(buffer)-1]=0;
658
      
659
      
659
      if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 13;  /* error exit */
660
      if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 13;  /* error exit */
661
      strncpy(tmp_buf2,buffer,MAXSRCH);
662
      tmp_buf2[strlen(buffer)-1]=0;
663
664
      if ((fgets(buffer,BUFSIZE,fp)) == NULL) return 13;  /* error exit */
660
      if (!isdigit((int)buffer[0])) return 13;  /* error exit */
665
      if (!isdigit((int)buffer[0])) return 13;  /* error exit */
661
666
662
      /* load temporary node data */
667
      /* load temporary node data */
663
      sscanf(buffer,"%lu",&t_snode.count);
668
      sscanf(buffer,"%lu",&t_snode.count);
664
669
665
      /* insert node */
670
      /* insert node */
666
      if (put_snode(tmp_buf,t_snode.count,sr_htab))
671
      if (put_snode(tmp_buf,tmp_buf2,t_snode.count,sr_htab))
667
      {
672
      {
668
         if (verbose) fprintf(stderr,"%s %s\n", msg_nomem_sc, t_snode.string);
673
         if (verbose) fprintf(stderr,"%s %s\n", msg_nomem_sc, t_snode.string);
669
      }
674
      }
(-)webalizer-2.01-10/sample.conf (+4 lines)
Lines 311-316 Link Here
311
#TopEntry        10
311
#TopEntry        10
312
#TopExit         10
312
#TopExit         10
313
#TopSearch       20
313
#TopSearch       20
314
#TopSearchSites  10
315
#TopSearchSiteStrs 30
314
#TopUsers        20
316
#TopUsers        20
315
317
316
# The All* keywords allow the display of all URL's, Sites, Referrers
318
# The All* keywords allow the display of all URL's, Sites, Referrers
Lines 333-338 Link Here
333
#AllReferrers	no
335
#AllReferrers	no
334
#AllAgents	no
336
#AllAgents	no
335
#AllSearchStr	no
337
#AllSearchStr	no
338
#AllSearchSites no
339
#AllSearchSiteStrs no
336
#AllUsers       no
340
#AllUsers       no
337
341
338
# The Webalizer normally strips the string 'index.' off the end of
342
# The Webalizer normally strips the string 'index.' off the end of
(-)webalizer-2.01-10/webalizer.c (-4 / +28 lines)
Lines 149-154 Link Here
149
int     ntop_agents  = 15;                    /* top n user agents ""     */
149
int     ntop_agents  = 15;                    /* top n user agents ""     */
150
int     ntop_ctrys   = 30;                    /* top n countries   ""     */
150
int     ntop_ctrys   = 30;                    /* top n countries   ""     */
151
int     ntop_search  = 20;                    /* top n search strings     */
151
int     ntop_search  = 20;                    /* top n search strings     */
152
int     ntop_searchsite = 10;                 /* top n search sites       */
153
int     ntop_searchboth = 30;                 /* top n search site/string */
152
int     ntop_users   = 20;                    /* top n users to display   */
154
int     ntop_users   = 20;                    /* top n users to display   */
153
155
154
int     all_sites    = 0;                     /* List All sites (0=no)    */
156
int     all_sites    = 0;                     /* List All sites (0=no)    */
Lines 156-161 Link Here
156
int     all_refs     = 0;                     /* List All Referrers       */
158
int     all_refs     = 0;                     /* List All Referrers       */
157
int     all_agents   = 0;                     /* List All User Agents     */
159
int     all_agents   = 0;                     /* List All User Agents     */
158
int     all_search   = 0;                     /* List All Search Strings  */
160
int     all_search   = 0;                     /* List All Search Strings  */
161
int     all_searchsites = 0;                  /* List All Search Sites    */
162
int     all_searchboth  = 0;                  /* List All Search String/Sites */
159
int     all_users    = 0;                     /* List All Usernames       */
163
int     all_users    = 0;                     /* List All Usernames       */
160
164
161
int     dump_sites   = 0;                     /* Dump tab delimited sites */
165
int     dump_sites   = 0;                     /* Dump tab delimited sites */
Lines 1518-1524 Link Here
1518
#ifdef USE_GEOIP
1522
#ifdef USE_GEOIP
1519
                     "GeoIP",             /* Use GeoIP library (0=no)   88  */
1523
                     "GeoIP",             /* Use GeoIP library (0=no)   88  */
1520
                     "GeoIPDatabase",     /* GeoIP database             89  */
1524
                     "GeoIPDatabase",     /* GeoIP database             89  */
1521
#endif	/* USE_GEOIP */
1525
#endif	/* USE_GEOIP */
1526
                     "TopSearchSites",    /* Top Search Sites           90  */
1527
                     "TopSearchSiteStrs", /* Top Search Site/String Pair91  */
1528
                     "AllSearchSites",    /* List all Search Sites      92  */
1529
                     "AllSearchSiteStrs", /* List all Search Site/String93  */
1522
                   };
1530
                   };
1523
1531
1524
   FILE *fp;
1532
   FILE *fp;
Lines 1668-1671 Link Here
1668
#endif	/* USE_GEOIP */
1678
#endif	/* USE_GEOIP */
1679
        case 90: ntop_searchsite = atoi(value);        break; /* Top Search pgs */
1680
        case 91: ntop_searchboth = atoi(value);        break; /* Top Search pgs */
1681
        case 92: all_searchsites=(value[0]=='y')?1:0;  break; /* All Srch str   */
1682
        case 93: all_searchboth=(value[0]=='y')?1:0;   break; /* All Srch str   */
1669
      }
1683
      }
1670
   }
1684
   }
1671
   fclose(fp);
1685
   fclose(fp);
Lines 1888-1898 Link Here
1888
   /* ptr should point to unescaped query string */
1904
   /* ptr should point to unescaped query string */
1889
   char tmpbuf[BUFSIZE];
1905
   char tmpbuf[BUFSIZE];
1890
   char srch[80]="";
1906
   char srch[80]="";
1891
   unsigned char *cp1, *cp2, *cps;
1907
   unsigned char *cp1, *cp2, *cps, *cpsite;
1892
   int  sp_flg=0;
1908
   int  sp_flg=0;
1893
1909
1894
   /* Check if search engine referrer or return  */
1910
   /* Check if search engine referrer or return  */
1895
   if ( (cps=isinglist(search_list,log_rec.refer))==NULL) return; 
1911
   if ( (cps=nameinglist(search_list,log_rec.refer,(char **)&cpsite))==NULL) return; 
1896
1912
1897
   /* Try to find query variable */
1913
   /* Try to find query variable */
1898
   srch[0]='?'; strcpy(&srch[1],cps);              /* First, try "?..."      */
1914
   srch[0]='?'; strcpy(&srch[1],cps);              /* First, try "?..."      */
Lines 1928-1937 Link Here
1928
   /* strip invalid chars */
1943
   /* strip invalid chars */
1929
   cp1=cp2; while (*cp1!=0) { if ((*cp1<32)||(*cp1==127)) *cp1='_'; cp1++; }
1944
   cp1=cp2; while (*cp1!=0) { if ((*cp1<32)||(*cp1==127)) *cp1='_'; cp1++; }
1930
1945
1931
   if (put_snode(cp2,(u_long)1,sr_htab))
1946
   if (put_snode(cp2,cpsite,(u_long)1,sr_htab))
1932
   {
1947
   {
1933
      if (verbose)
1948
      if (verbose)
1934
      /* Error adding search string node, skipping .... */
1949
      /* Error adding search sitestring node, skipping .... */
1950
      fprintf(stderr,"%s %s\n", msg_nomem_sc, tmpbuf);
1951
   }
1952
   if (put_snode("",cpsite,(u_long)1,sr_htab))
1953
   {
1954
      if (verbose)
1955
      /* Error adding search site node, skipping .... */
1956
      fprintf(stderr,"%s %s\n", msg_nomem_sc, tmpbuf);
1957
   }
1958
   if (put_snode(cp2,"",(u_long)1,sr_htab))
1959
   {
1960
      if (verbose)
1961
      /* Error adding search site node, skipping .... */
1935
      fprintf(stderr,"%s %s\n", msg_nomem_sc, tmpbuf);
1962
      fprintf(stderr,"%s %s\n", msg_nomem_sc, tmpbuf);
1936
   }
1963
   }
1937
   return;
1964
   return;
(-)webalizer-2.01-10/webalizer.h (+4 lines)
Lines 201-206 Link Here
201
extern int     ntop_agents  ;                 /* top n user agents ""     */
201
extern int     ntop_agents  ;                 /* top n user agents ""     */
202
extern int     ntop_ctrys   ;                 /* top n countries   ""     */
202
extern int     ntop_ctrys   ;                 /* top n countries   ""     */
203
extern int     ntop_search  ;                 /* top n search strings     */
203
extern int     ntop_search  ;                 /* top n search strings     */
204
extern int     ntop_searchsite;               /* top n search sites       */
205
extern int     ntop_searchboth;               /* top n search site/strings*/
204
extern int     ntop_users   ;                 /* top n users to display   */
206
extern int     ntop_users   ;                 /* top n users to display   */
205
207
206
extern int     all_sites    ;                 /* List All sites (0=no)    */
208
extern int     all_sites    ;                 /* List All sites (0=no)    */
Lines 208-213 Link Here
208
extern int     all_refs     ;                 /* List All Referrers       */
210
extern int     all_refs     ;                 /* List All Referrers       */
209
extern int     all_agents   ;                 /* List All User Agents     */
211
extern int     all_agents   ;                 /* List All User Agents     */
210
extern int     all_search   ;                 /* List All Search Strings  */
212
extern int     all_search   ;                 /* List All Search Strings  */
213
extern int     all_searchsites;               /* List All Search Sites    */
214
extern int     all_searchboth;                /* List All Search Site/Strings*/
211
extern int     all_users    ;                 /* List All Usernames       */
215
extern int     all_users    ;                 /* List All Usernames       */
212
216
213
extern int     dump_sites   ;                 /* Dump tab delimited sites */
217
extern int     dump_sites   ;                 /* Dump tab delimited sites */

Return to bug 98977