]> git.ipfire.org Git - thirdparty/sarg.git/commitdiff
Imported Sarg 2.1.0
authorGuido Serassio <serassio@users.sourceforge.net>
Wed, 15 Feb 2006 18:07:39 +0000 (18:07 +0000)
committerGuido Serassio <serassio@users.sourceforge.net>
Wed, 15 Feb 2006 18:07:39 +0000 (18:07 +0000)
patches/oleg [deleted file]
patches/oleg1 [deleted file]
patches/oleg2 [deleted file]
patches/oleg4 [deleted file]
realtime.c [new file with mode: 0755]

diff --git a/patches/oleg b/patches/oleg
deleted file mode 100644 (file)
index 1c798f3..0000000
+++ /dev/null
@@ -1,541 +0,0 @@
-From xsov@mail.ru Sun Apr 24 16:42:06 2005
-Received: 194.67.23.121 / smx1.brturbo.com
-Received: from [212.48.203.89] (port=1505 helo=[192.168.0.77]) by
-       mx1.mail.ru with asmtp  id 1DPgEw-0006L9-00 for orso@brturbo.com; Sun, 24
-       Apr 2005 16:29:35 +0400
-From: Oleg <xsov@mail.ru>
-To: Pedro Lineu Orso <orso@brturbo.com>
-Subject: sarg-2.0.6 new patches
-Date: Sun, 24 Apr 2005 16:42:06 +0400
-User-Agent: KMail/1.7.2
-MIME-Version: 1.0
-Content-Type: Multipart/Mixed; boundary="Boundary-00=_eQ5aCJp/CximSea"
-Message-Id: <200504241642.06841.xsov@mail.ru>
-X-Evolution-Source: pop://orso@pop.brturbo.com
-
-
---Boundary-00=_eQ5aCJp/CximSea
-Content-Type: text/plain; charset="koi8-r"
-Content-Disposition: inline
-Content-Transfer-Encoding: 8bit
-
-     Good day, Pedro!
-
- Again me :-) I just make some new good patches for sarg and review my old 
-patches to sarg, so there is:
-
-1) CONTRIBUTORS.patch:
-Look at the CONTRIBUTORS file, there is two equal lines about Evren Yurtesen 
-<yurtesen@ispro.net.tr>, I just remove first one, the second (equal to first) 
-is here, on place.
-
-2) grepday.patch:
-I add internationalisation of SARG user graph by using iconv function, which 
-is presented only in Linux, so I add required #ifdef and other stuff to clean 
-compile code on other platforms.
-
-3) htmllogreport.patch:
-Fixed two issues:
-- '?' symbol problems for apache and other cgi-supporting web server which 
-doesn't support '?' symbol in links (all of them interprete this like 
-parameter to cgi script);
-- some good optimization to all three similar cicles in these files by 
-reducing false checks in 'if ...' strings.
-
-4) index.patch:
-Fixes segfault, produced by inproper use of strncpy functions, look - strncpy 
-doesn't copy leading '\0' symbol!
-
-5) repday.patch:
-Just localisation support for this type of report, patch is simple, just look 
-at it.
-
-6) siteuser.patch:
-Support usertab IP->USERNAME change in siteuser report, which was removed 
-prior to sarg-2.0.0 versions.
-WARNING: I'm not sure about bugs in this patch, but must warn you, that we 
-don't heavily test this patch in other configurations!
-
-7) Russian_koi8.patch:
-Just proper Russian koi8 localisation, believe me, it is good enought, because 
-I'm russian :-)
-
-Pedro, can you tell which my patches you will include in next sarg release? 
-None of all previous sended to you my patches was included in sarg 
-releases ... :-(
-
-And one bugreport:
-SARG version: 2.0.6 (clean, downloaded from sf.net, without any additional 
-patches)
-OS: Linux Slackware 10.1
-Reproduction of bug:
-tar xvfz sarg-2.0.6.tar.gz
-cd sarg-2.0.6
-autoconf
-./configure
-make
-gcc -c -I.  -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" 
--DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DHAVE_DIRENT_H=1 
--DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 
--DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 
--DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 
--DHAVE_STRING_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_TIME_H=1 
--DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_NETDB_H=1 
--DHAVE_ARPA_INET_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_NETINET_IN_H=1 
--DHAVE_SYS_STAT_H=1 -DHAVE_CTYPE_H=1 -DHAVE_GD_H=1 -DHAVE_GDFONTL_H=1 
--DHAVE_GDFONTT_H=1 -DHAVE_GDFONTS_H=1 -DHAVE_GDFONTMB_H=1 -DHAVE_GDFONTG_H=1 
--DHAVE_ERRNO_H=1 -DHAVE_FOPEN64=1   -g -O2 -w -DBINDIR=\"/usr/bin\" 
--DSYSCONFDIR=\"/usr/local/sarg\" -DHTMLDIR=\"/var/www/html\" log.c
-log.c: In function `main':
-log.c:127: error: storage size of 'rl' isn't known
-log.c:668: error: `RLIMIT_OFILE' undeclared (first use in this function)
-log.c:668: error: (Each undeclared identifier is reported only once
-log.c:668: error: for each function it appears in.)
-make: *** [log.o] Error 1
-
-Best regards,
-Sapon Oleg,
-RusBusinessSecurity Co. Ltd.
-
---Boundary-00=_eQ5aCJp/CximSea
-Content-Type: text/x-diff; charset="koi8-r"; name="CONTRIBUTORS.patch"
-Content-Disposition: attachment; filename="CONTRIBUTORS.patch"
-Content-Transfer-Encoding: 8bit
-
-diff -ru sarg-2.0.6/CONTRIBUTORS sarg-2.0.6rbs/CONTRIBUTORS
---- sarg-2.0.6/CONTRIBUTORS    2004-11-22 16:37:02.000000000 +0300
-+++ sarg-2.0.6rbs/CONTRIBUTORS 2004-11-25 03:05:24.000000000 +0300
-@@ -10,7 +10,6 @@
- Dima I. Allaverdov <allav@ur.rags.ru>
- Eugeny Kuzakov <CoreDumped@CoreDumped.null.ru>
- Evren Yurtesen <yurtesen@ispro.net.tr>
--Evren Yurtesen <yurtesen@ispro.net.tr>
- Hanni Daniel <daniel.haenni@softlab.ch>
- Ilya V. Komarov <mur@mur.lynx.ru>
- Jose Luiz <jluiz@projesom.com.br>
-
---Boundary-00=_eQ5aCJp/CximSea
-Content-Type: text/x-diff; charset="koi8-r"; name="grepday.patch"
-Content-Disposition: attachment; filename="grepday.patch"
-Content-Transfer-Encoding: 8bit
-
-diff -ur sarg-2.0.6/configure.in sarg-2.0.6rbs/configure.in
---- sarg-2.0.6/configure.in    2005-02-21 21:13:21.000000000 +0300
-+++ sarg-2.0.6rbs/configure.in 2005-04-24 15:31:31.000000000 +0400
-@@ -40,7 +40,7 @@
- AC_CHECK_HEADERS(stdio.h stdlib.h string.h strings.h sys/time.h time.h unistd.h sys/dirent.h \
-                dirent.h sys/socket.h netdb.h arpa/inet.h sys/types.h netinet/in.h sys/stat.h \
--               ctype.h gd.h gdfontl.h gdfontt.h gdfonts.h gdfontmb.h gdfontg.h errno.h)
-+               ctype.h gd.h gdfontl.h gdfontt.h gdfonts.h gdfontmb.h gdfontg.h iconv.h errno.h)
- AC_CHECK_LIB(gd, gdImagePng,LIBS="-lgd ${LIBS}"; HAVE_GD="yes", HAVE_GD="")
-diff -ur sarg-2.0.6/grepday.c sarg-2.0.6rbs/grepday.c
---- sarg-2.0.6/grepday.c       2005-04-23 02:27:48.000000000 +0400
-+++ sarg-2.0.6rbs/grepday.c    2005-04-24 15:34:19.000000000 +0400
-@@ -36,6 +36,38 @@
- char *font1 = SYSCONFDIR"/fonts/Verdana.TTF";
- char s[15];
-+#ifdef HAVE_ICONV_H
-+#include <iconv.h>
-+#define SARGgdImageStringFT I18NgdImageStringFT
-+
-+BGD_DECLARE(char *) I18NgdImageStringFT (gdImage * im, int *brect, int fg, char *fontlist,
-+                         double ptsize, double angle, int x, int y,
-+                                                 char *string)
-+{
-+ iconv_t localtoutf;
-+ char *sstring, *str, *sstr, *retval;
-+ size_t slen, sslen;
-+
-+ slen = strlen(string) + 1; // We must include string termination character
-+ sslen = slen * 2;          // We assume that UTF8 maximum 2 times large than local
-+ sstring = (char *)malloc(sslen);
-+
-+ str = (char *) string;
-+ sstr = (char *) sstring;
-+
-+ localtoutf = iconv_open ("UTF-8", CharSet);
-+ iconv (localtoutf, &str, &slen, &sstr, &sslen);
-+ iconv_close (localtoutf);
-+
-+ retval = gdImageStringFTEx (im, brect, fg, fontlist, ptsize, angle, x, y, sstring, gdFTEX_Unicode);
-+ free(sstring);
-+
-+ return retval;
-+}
-+#else
-+#define SARGgdImageStringFT gdImageStringFT
-+#endif
-+
- void *bar(long long int *n)
- {     
- #ifdef HAVE_GD
-@@ -173,7 +205,7 @@
-    snprintf(v,6,"%s",fixnum(num,0));
--   gdImageStringFT(im,&brect[0],black,font1,5,0.0,x1-1,val-12,v);
-+   SARGgdImageStringFT(im,&brect[0],black,font1,5,0.0,x1-1,val-12,v);
-    
-    points[0].x = x1+17;
-    points[0].y = val-5;
-@@ -270,7 +302,7 @@
-    y=65;
-    for(x=1; x<=31; x++) {
-       sprintf(s,"%02d",x);
--      gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,y,437,s);
-+      SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,y,437,s);
-       y=y+20;
-    }
-@@ -281,51 +313,51 @@
-    if(strcmp(DateFormat,"e") == 0)
-       strftime(ftime, 127, "%d/%b/%Y-%H:%M", local);
--   gdImageStringFT(im,&brect[0],darkblue,font1,6,0.0,620,470,ftime);
--   gdImageStringFT(im,&brect[0],darkblue,font1,9,0.0,257,15,"SARG, ");
--   gdImageStringFT(im,&brect[0],darkblue,font1,9,0.0,300,15,Title);
-+   SARGgdImageStringFT(im,&brect[0],darkblue,font1,6,0.0,620,470,ftime);
-+   if(strcmp(ShowSargInfo,"yes") == 0) SARGgdImageStringFT(im,&brect[0],darkblue,font1,9,0.0,257,15,"SARG, ");
-+   SARGgdImageStringFT(im,&brect[0],darkblue,font1,9,0.0,300,15,Title);
-    sprintf(warea,"%s: %s",text[89],periodo);
--   gdImageStringFT(im,&brect[0],darkblue,font1,7,0.0,300,27,warea);
-+   SARGgdImageStringFT(im,&brect[0],darkblue,font1,7,0.0,300,27,warea);
-    sprintf(warea,"%s: %s",text[90],name);
--   gdImageStringFT(im,&brect[0],darkblue,font1,7,0.0,300,38,warea);
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,418,"  50K");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,408,"250K");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,398,"500K");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,388,"   1M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,378,"   2M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,368,"   3M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,358,"   4M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,348,"   5M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,338,"   6M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,328,"   7M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,318,"   8M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,308,"   9M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,298," 10M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,288," 15M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,278," 20M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,268," 30M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,258," 40M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,248," 50M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,238," 60M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,228," 70M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,218," 80M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,208," 90M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,198,"100M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,188,"200M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,178,"300M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,168,"400M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,158,"500M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,148,"600M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,138,"700M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,128,"800M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,118,"900M");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,108,"   1G");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23, 98,"   2G");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23, 88,"   3G");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23, 78,"   4G");
--   gdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23, 68,"   5G");
--   gdImageStringFT(im,&brect[0],black,font1,10,3.14/2,20,248,text[93]);
--   gdImageStringFT(im,&brect[0],black,font1,10,0.0,330,460,text[127]);
-+   SARGgdImageStringFT(im,&brect[0],darkblue,font1,7,0.0,300,38,warea);
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,418,"  50K");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,408,"250K");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,398,"500K");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,388,"   1M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,378,"   2M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,368,"   3M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,358,"   4M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,348,"   5M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,338,"   6M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,328,"   7M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,318,"   8M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,308,"   9M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,298," 10M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,288," 15M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,278," 20M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,268," 30M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,258," 40M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,248," 50M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,238," 60M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,228," 70M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,218," 80M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,208," 90M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,198,"100M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,188,"200M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,178,"300M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,168,"400M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,158,"500M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,148,"600M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,138,"700M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,128,"800M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,118,"900M");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23,108,"   1G");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23, 98,"   2G");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23, 88,"   3G");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23, 78,"   4G");
-+   SARGgdImageStringFT(im,&brect[0],dimgray,font1,7,0.0,23, 68,"   5G");
-+   SARGgdImageStringFT(im,&brect[0],black,font1,10,3.14/2,20,248,text[93]);
-+   SARGgdImageStringFT(im,&brect[0],black,font1,10,0.0,330,460,text[127]);
-  
-    sprintf(graph,"%s/%s/graph_day.png",dirname,user);
-    sprintf(wdirname,"%s/%s.day",tmp,user);
-
---Boundary-00=_eQ5aCJp/CximSea
-Content-Type: text/x-diff; charset="koi8-r"; name="htmllogreport.patch"
-Content-Disposition: attachment; filename="htmllogreport.patch"
-Content-Transfer-Encoding: 8bit
-
-diff -ur sarg-2.0.6/html.c sarg-2.0.6rbs/html.c
---- sarg-2.0.6/html.c  2005-04-23 02:27:48.000000000 +0400
-+++ sarg-2.0.6rbs/html.c       2005-04-24 15:58:36.000000000 +0400
-@@ -349,23 +349,11 @@
-                for(s=ltext110; *s; ++s)
-                   *s=tolower(*s);
-             }
--            z1=0;
--            z2=0;
--            strcpy(siteind,url);
-+            strcpy(siteind,urly);
-             str=siteind;
--            for(z1=0; z1<=strlen(str); z1++) {
--               if(str[z1]=='-')
-+            for(z1=0; z1<strlen(str); z1++) {
-+             if(str[z1]=='?' || str[z1]=='-' || str[z1]=='.' || str[z1]==':' || str[z1]=='/' || str[z1]=='\\')
-                   str[z1]='_';
--               if(str[z1]=='.')
--                  str[z1]='_';
--               if(str[z1]==':')
--                  str[z1]='_';
--               if(str[z1]=='/')
--                  str[z1]='_';
--               if(str[z1]=='\\')
--                  str[z1]='_';
--               siteind[z2]=str[z1];
--               z2++;
-             }
-             sprintf(href2,"<a href=\"tt%s-%s.html\"><img src=\"../../images/datetime.png\" border=\"0\" title=\"%s %s\"></a>",usuario,siteind,ltext110,text[55]);
-          } else {
-diff -ur sarg-2.0.6/log.c sarg-2.0.6rbs/log.c
---- sarg-2.0.6/log.c   2005-04-23 01:03:19.000000000 +0400
-+++ sarg-2.0.6rbs/log.c        2005-04-24 16:00:53.000000000 +0400
-@@ -974,21 +974,11 @@
-            sprintf(user,"%s.%s",w,wuser);
-         }
--      z1=0;
--      z2=0;
-       str=user;
--      for(z1=0; z1<=strlen(str); z1++) {
-+      for(z1=0; z1<strlen(str); z1++) {
-          if(isalnum(str[z1]) || ispunct(str[z1])) {
--            if(str[z1]=='/')
--               str[z1]='_';
--            if(str[z1]=='\\')
--               str[z1]='_';
--            if(str[z1]==';')
--               str[z1]='_';
--            if(str[z1]=='\'')
--               str[z1]='_';
--            user[z2]=str[z1];
--            z2++;
-+         if(str[z1]=='?' || str[z1]=='-' || str[z1]=='.' || str[z1]==':' || str[z1]=='/' || str[z1]=='\\')
-+            str[z1]='_';
-          }
-       }
-diff -ur sarg-2.0.6/report.c sarg-2.0.6rbs/report.c
---- sarg-2.0.6/report.c        2005-04-23 00:57:22.000000000 +0400
-+++ sarg-2.0.6rbs/report.c     2005-04-24 16:02:12.000000000 +0400
-@@ -186,22 +186,10 @@
-          if(!ttopen) {
-             ind2++;
-           strcpy(siteind,accurl);
--            z1=0;
--          z2=0;
-           str=siteind;
--          for(z1=0; z1<=strlen(str); z1++) {
--             if(str[z1]=='-')
--                  str[z1]='_';
--             if(str[z1]=='.')
--                  str[z1]='_';
--             if(str[z1]==':')
--                  str[z1]='_';
--             if(str[z1]=='/')
--                  str[z1]='_';
--             if(str[z1]=='?')
--                  str[z1]='_';
--               siteind[z2]=str[z1];
--               z2++;
-+          for(z1=0; z1<strlen(str); z1++) {
-+          if(str[z1]=='?' || str[z1]=='-' || str[z1]=='.' || str[z1]==':' || str[z1]=='/' || str[z1]=='\\')
-+                           str[z1]='_';
-             }
-           sprintf(arqtt,"%s/%s",dirname,accuser);
-           if(access(arqtt, R_OK) != 0)
-
---Boundary-00=_eQ5aCJp/CximSea
-Content-Type: text/x-diff; charset="koi8-r"; name="repday.patch"
-Content-Disposition: attachment; filename="repday.patch"
-Content-Transfer-Encoding: 8bit
-
-diff -ur sarg-2.0.6/repday.c sarg-2.0.6rbs/repday.c
---- sarg-2.0.6/repday.c        2005-02-21 21:13:22.000000000 +0300
-+++ sarg-2.0.6rbs/repday.c     2005-04-21 01:37:06.000000000 +0400
-@@ -140,13 +140,13 @@
-    fputs( "<tr><td border=0></td>\n", fp_ou );
-    if(strcmp(datetimeby,"bytes") == 0)
--     strcpy( html, "BYTES" );
-+     strcpy( html, text[93] );
-    else
-      strcpy( html, "H:M:S" );
-    for( i = 0; i < hours.len; i++ )
-      fprintf( fp_ou,
--      "<td class=\"header3\">%02dH<br>%s</td>\n", hours.list[ i ], html );
-+      "<td class=\"header3\">%d%s<br>%s</td>\n", hours.list[ i ], text[129], html );
-    fprintf( fp_ou,
-      "<td class=\"header3\">%s<br>%s</td></tr>\n", text[107], html );
-
---Boundary-00=_eQ5aCJp/CximSea
-Content-Type: text/x-diff; charset="koi8-r"; name="Russian_koi8.patch"
-Content-Disposition: attachment; filename="Russian_koi8.patch"
-Content-Transfer-Encoding: 8bit
-
-diff -ru sarg-2.0.6/languages/Russian_koi8 sarg-2.0.6rbs/languages/Russian_koi8
---- sarg-2.0.6/languages/Russian_koi8  2004-11-22 16:37:02.000000000 +0300
-+++ sarg-2.0.6rbs/languages/Russian_koi8       2004-11-25 03:02:36.000000000 +0300
-@@ -1,4 +1,4 @@
--# by Andrew Okhmat <andy@crgu.com>
-+# by Andrew Okhmat <andy@crgu.com> and Sapon Oleg <xsov@mail.ru>
- "äÁ"
- "îÅÔ"
- "Russian"
-@@ -27,7 +27,7 @@
- "å×ÒÏÐÁ"
- "áÍÅÒÉËÁ"
- "IP ÏÔÞÅÔ"
--"éÓÐÏÌØÚÏ×ÁÔØ Ip-ÁÄÒÅÓ ×ÍÅÓÔÏ ÉÍÅÎÉ ÐÏÌØÚÏ×ÁÔÅÌÑ"
-+"éÓÐÏÌØÚÏ×ÁÔØ IP-ÁÄÒÅÓ ×ÍÅÓÔÏ ÉÍÅÎÉ ÐÏÌØÚÏ×ÁÔÅÌÑ"
- "áÄÒÅÓÁ"
- "÷ÒÅÍÑ"
- "éÍÑ"
-@@ -81,7 +81,7 @@
- "× ÏÂÙÞÎÏÍ ÐÏÒÑÄËÅ"
- "õÄÁÌÑÀ ÓÔÁÒÙÊ ÆÁÊÌ ÏÔÞÅÔÁ"
- "õÄÁÌÑÀ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ"
--"ôÏÐ"
-+"ôÏРÓÁÊÔÙ"
- "óÁÊÔÙ"
- "óÁÊÔÙ É ðÏÌØÚÏ×ÁÔÅÌÉ"
- "úÁÇÒÕÖÁÀ ÔÁÂÌÉÃÕ ÐÏÌØÚÏ×ÁÔÅÌÑ"
-@@ -113,13 +113,18 @@
- "OUT"
- "IN"
- "CACHE"
--"SitesUsers"
--"óÍÁÒÔæÉÌØÔÒ"
--"ïÛÉÂËÁ ÁÕÔÅÎÔÉÆÉËÁÃÉÉ"
-+"óÁÊÔÙ É ðÏÌØÚÏ×ÁÔÅÌÉ"
-+"SmartFilter"
-+"ïÛÉÂËÉ ÁÕÔÅÎÔÉÆÉËÁÃÉÉ"
-+"úáðòåô"
-+"ôÏРÓÁÊÔÙ"
- "SQUIDGUARD"
--"RULE"
-+"ðÒÁ×ÉÌÏ"
- "squidGuard"
--"Sarg parsed log saved as"
--"Sarg log format"
--"Graphic"
--"DAYS"
-+"öÕÒÎÁÌ, ÏÂÒÁÂÏÔÁÎÎÙÊ Sarg ÓÏÈÒÁÎÅΠ×"
-+"æÏÒÍÁÔ ÆÁÊÌÁ ÖÕÒÎÁÌÁ Sarg"
-+"úÁËÁÞËÉ"
-+"äÉÁÇÒÁÍÍÁ"
-+"äÎÉ"
-+"äÎÉ"
-+"þ"
-
---Boundary-00=_eQ5aCJp/CximSea
-Content-Type: text/x-diff; charset="koi8-r"; name="siteuser.patch"
-Content-Disposition: attachment; filename="siteuser.patch"
-Content-Transfer-Encoding: 8bit
-
-diff -ru sarg-2.0.6/siteuser.c sarg-2.0.6rbs/siteuser.c
---- sarg-2.0.6/siteuser.c      2005-04-20 20:52:20.000000000 +0400
-+++ sarg-2.0.6rbs/siteuser.c   2005-02-21 21:13:23.000000000 +0300
-@@ -131,6 +131,24 @@
-          continue;
-       if(userip)
-          fixip(user);
-+
-+      if(UserTabFile[0] != '\0') {
-+          sprintf(warea,":%s:",user);
-+          if((str=(char *) strstr(userfile,warea)) != (char *) NULL ) {
-+              z1=0;
-+              str2=(char *) strstr(str+1,":");
-+              str2++;
-+              bzero(name, MAXLEN);
-+                while(str2[z1] != ':') {
-+                  name[z1]=str2[z1];
-+                  z1++;
-+              }
-+          } else strcpy(name,user);
-+      } else strcpy(name,user);
-+
-+      if(strcmp(Ip2Name,"yes") == 0)
-+         ip2name(user);
-+
-       if(strcmp(Ip2Name,"yes") == 0)
-          ip2name(user);
-@@ -143,9 +161,9 @@
-          regs++;
-       }
-       
--      sprintf(wuser," %s ",user);
-+      sprintf(wuser," %s ",name);
-       if(strstr(users,wuser) == 0 && strcmp(url,ourl) == 0) {
--         strcat(users,user);
-+         strcat(users,name);
-          strcat(users," ");
-          ucount++;
-          if(ucount>4) {
-@@ -168,7 +186,7 @@
-          fputs(html,fp_ou);
-          regs++;
-          ucount=0;
--       strcpy(users,user);
-+       strcpy(users,name);
-          strcat(users," ");
-          strcpy(ourl,url);
-       }
-
---Boundary-00=_eQ5aCJp/CximSea
-Content-Type: text/x-diff; charset="koi8-r"; name="index.patch"
-Content-Disposition: attachment; filename="index.patch"
-Content-Transfer-Encoding: 8bit
-
-diff -ur sarg-2.0.6/index.c sarg-2.0.6rbs/index.c
---- sarg-2.0.6/index.c 2005-02-21 21:13:23.000000000 +0300
-+++ sarg-2.0.6rbs/index.c      2005-04-24 07:40:41.000000000 +0400
-@@ -78,6 +78,7 @@
-       bzero(newname, 512);
-       strncat(newname,direntp->d_name,4);
-       strncpy(month,direntp->d_name+4,3);
-+      month[3]='\0';
-       conv_month(month);
-       strcat(newname,month);
-       strncat(newname,direntp->d_name+7,2);
-
---Boundary-00=_eQ5aCJp/CximSea--
-
diff --git a/patches/oleg1 b/patches/oleg1
deleted file mode 100644 (file)
index 33a8712..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-From xsov@mail.ru Fri May  6 04:30:56 2005
-Received: 194.67.23.149 / smx2.brturbo.com
-Received: from [212.48.201.194] (port=40725 helo=[192.168.0.77]) by
-       mx3.mail.ru with asmtp  id 1DTqX4-0008GO-00 for orso@brturbo.com.br; Fri,
-       06 May 2005 04:17:31 +0400
-From: Oleg <xsov@mail.ru>
-To: Pedro Lineu Orso <orso@brturbo.com.br>
-Subject: Re: sarg-2.0.6 new patches
-Date: Fri, 6 May 2005 04:30:56 +0400
-User-Agent: KMail/1.7.2
-References: <200504241642.06841.xsov@mail.ru>
-        <1115290770.4499.7.camel@lcaklds49>
-In-Reply-To: <1115290770.4499.7.camel@lcaklds49>
-MIME-Version: 1.0
-Content-Type: Multipart/Mixed; boundary="Boundary-00=_BrreCrvUGWRZVaY"
-Message-Id: <200505060430.57213.xsov@mail.ru>
-X-Evolution-Source: pop://orso@pop.brturbo.com.br
-
-
---Boundary-00=_BrreCrvUGWRZVaY
-Content-Type: text/plain; charset="koi8-r"
-Content-Disposition: inline
-Content-Transfer-Encoding: 8bit
-
-Hello Pedro!
-
-PL > I have implemented your patches on sarg-2.0.7 and there are some sarg
-PL > users asking me
-PL > about this one:
-PL >
-PL > . Fixes segfault, produced by inproper use of strncpy functions, look -
-PL > strncpy
-PL >
-PL > Can you please explain when segfault happens?
-PL >
-PL > I've seen that the forth characted of month[] in index.c is set to null
-PL > to avoid strcat to segfault, but I cannot understand when this is
-PL > needed.
-
-I have big-big squid.log file, and this error is produced only when I use 
-"LongUrl=yes" option in configuration file, I deeply debug code and see, that 
-error was at that place of code. I also can assume that overrun of '\0' 
-symbol was produced by error in other part of code. If you want I can get 
-part of my squid.log file, which produce this error and send it to you with 
-my squid.conf file (but I can do this not so fast, because file is very 
-large, and I can't send sensitive information from it to anybody).
-
-I include here another my patches for new sarg 2.0.7 version:
-1) topuser.diff:
-URL size is too small for URL with coded symbols, like %2f for slash ('/') 
-symbol, I see URLs in my squid.log file with length about 1400 characters. So 
-because there was number 1024 (I don't know where you get it, may be from 
-some RFC?), and one symbol can be 3-times longer, I enlarge buffer to 3072 
-characters (3 x 1024).
-
-2) util.diff
-There I replace all '<=12' condition to '<12' because array of months has 12 
-elements, which are numbered from 0, so:
-0 - 1st (January)
-1 - 2nd (February)
-...
-11 - 12th (December)
-and condition <=12 will loop for 13 elements, that is wrong.
-
-I also remove unneeded 'return;' at the ends of some functions (I don't think 
-it is required for other operating systems).
-
-Regards, Oleg.
-
---Boundary-00=_BrreCrvUGWRZVaY
-Content-Type: text/x-diff; charset="koi8-r"; name="topuser.diff"
-Content-Disposition: attachment; filename="topuser.diff"
-Content-Transfer-Encoding: 8bit
-
---- sarg-2.0.7/topuser.c       2005-05-02 17:55:04.000000000 +0400
-+++ sarg-2.0.7rbs/topuser.c    2005-05-04 03:53:48.000000000 +0400
-@@ -38,7 +38,7 @@
-    int posicao=0;
-    char olduser[MAXLEN], csort[MAXLEN], periodo[MAXLEN], arqper[MAXLEN];
-    char wger[MAXLEN], top1[MAXLEN], top2[MAXLEN], top3[MAXLEN];
--   char user[MAXLEN], nacc[20], nbytes[20], url[1024], preg[8000], tusr[MAXLEN];
-+   char user[MAXLEN], nacc[20], nbytes[20], url[3072], preg[8000], tusr[MAXLEN];
-    char ip[MAXLEN], hora[9], data[11], elap[15], incac[15], oucac[15], html[MAXLEN];
-    char ipantes[MAXLEN], nameantes[MAXLEN];
-    char sfield[10]="2,2";
-
---Boundary-00=_BrreCrvUGWRZVaY
-Content-Type: text/x-diff; charset="koi8-r"; name="util.diff"
-Content-Disposition: attachment; filename="util.diff"
-Content-Transfer-Encoding: 8bit
-
---- sarg-2.0.7/util.c  2005-05-02 17:55:04.000000000 +0400
-+++ sarg-2.0.7rbs/util.c       2005-05-04 04:04:01.000000000 +0400
-@@ -246,7 +246,7 @@
-    ndia[0]='\0';
-    nmes[0]='\0';
--   for(x=0; x<=12; x++) {
-+   for(x=0; x<12; x++) {
-       if(strcmp(mtab1[x],mes) == 0) {
-          strncpy(nmes,mtab2[x],sizeof(nmes)-1);
-          nmes[sizeof(nmes)-1]=0;
-@@ -262,9 +262,6 @@
-    strncpy(dia,ndia,sizeof(dia)-1);
-    dia[sizeof(dia)-1]=0;
--
--   return;
--
- }
-@@ -275,15 +272,12 @@
-    nmes[0]='\0';
--   for(x=0; x<=12; x++) {
-+   for(x=0; x<12; x++) {
-       if(strcmp(mtab1[x],mes) == 0)
-          strcpy(nmes,mtab2[x]);
-    }
-    sprintf(wdata,"%s%s%s",ano,nmes,dia);
--
--   return;
--
- }
-@@ -291,13 +285,10 @@
- {
-    int  x;
--   for(x=0; x<=12; x++) {
-+   for(x=0; x<12; x++) {
-       if(strcmp(mtab1[x],month) == 0)
-          strcpy(month,mtab2[x]);
-    }
--
--   return;
--
- }
-@@ -305,7 +296,7 @@
- {
-    int x;
--   for(x=0; x<=12; x++) {
-+   for(x=0; x<12; x++) {
-       if(strcmp(mtab2[x],month) == 0)
-          strcpy(month,mtab1[x]);
-    }
-@@ -328,7 +319,7 @@
-    strncpy(ano,duntil,4);
-    ano[4]='\0';
--   for(x=0; x<=12; x++) {
-+   for(x=0; x<12; x++) {
-       if(strcmp(mtab2[x],mes) == 0)
-          strcpy(mes,mtab1[x]);
-    }
-@@ -339,23 +330,18 @@
-       sprintf(warea,"%s%s%s",ano,mes,dia);
-    strcat(periodo,warea);
--   return;
- }
- void debuga(char *msg)
- {
-   fprintf(stderr, "SARG: %s\n",msg);
--
--  return;
- }
- void debugaz(char *head, char *msg)
- {
-   fprintf(stderr, "SARG: (util) %s=%s\n",head, msg);
--
--  return;
- }
-@@ -384,8 +370,6 @@
-    }
-    ip[0]='\0';
-    sprintf(ip,"%s%s%s%s%s%s%s",n1,sep,n2,sep,n3,sep,wip);
--
--   return;
- }
-@@ -499,9 +483,6 @@
-    strcpy(href,"<a href='");
-    strcat(href,whref);
-    strcat(href,"/");
--
--   return;
--
- }
-@@ -541,9 +522,6 @@
-    fgets(data,80,fp_in);
-    fclose(fp_in);
-    data[strlen(data)-1]='\0';
--
--   return;
--
- }
-@@ -562,9 +540,6 @@
-    fgets(tuser,20,fp_in);
-    tuser[strlen(tuser)-1]='\0';
-    fclose(fp_in);
--
--   return;
--
- }
-@@ -603,9 +578,6 @@
-    wtuser=my_atoll(tuser);
-    med=my_atoll(warea) / wtuser;
-    sprintf(media,"%s",fixnum(med,1));
--
--   return;
--
- }
-@@ -631,9 +603,6 @@
-    if(debug)
-       debuga((char *)text[50]);
-- 
--   return;
-- 
- }
- void vrfydir(char *dir, char *per1, char *addr, char *site, char *us, char *form)
-@@ -733,10 +702,6 @@
-    }
-    (void) rewinddir(dirp);
-    (void) closedir(dirp);
--
--   return;
--
--
- }
-@@ -752,9 +717,6 @@
-       strcat(warea,line);
-       strcpy(line,warea);
-    }
--
--   return;
--
- }
- void zdate(char *ftime, char *DateFormat)
-@@ -771,8 +733,6 @@
-       strftime(ftime, 127, "%d/%b/%Y-%H:%M", local);
-    if(strcmp(DateFormat,"w") == 0)
-       strftime(ftime, 127, "%V-%H-%M", local);
--
--   return;
- }
-@@ -839,7 +799,6 @@
-    sprintf(dfrom,"%s%s%s",anof,mesf,diaf);
-    sprintf(duntil,"%s%s%s",anou,mesu,diau);
--   return;
- }
-@@ -928,8 +887,6 @@
-       sprintf(warea,"%s/periodo",outdir);
-       unlink(warea);
-    }
--  
--   return;
- }
- void load_excludecodes()
-@@ -951,8 +908,6 @@
-    }
-    fclose(fp_in);
--   return;
--
- }
- int vercode(char *code)
-@@ -976,8 +931,6 @@
-       str[strlen(str)-1]='\0';
-    if(strcmp(str,"none") == 0)
-       str[0]='\0';
--
--   return;
- }
- #ifdef LEGACY_TESTVALIDUSERCHAR
-@@ -1111,8 +1064,6 @@
-       w2[y]=w[x];
-       y++;
-    }
--
--   return;
- }
- void version()
-
---Boundary-00=_BrreCrvUGWRZVaY--
-
diff --git a/patches/oleg2 b/patches/oleg2
deleted file mode 100644 (file)
index 33a8712..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-From xsov@mail.ru Fri May  6 04:30:56 2005
-Received: 194.67.23.149 / smx2.brturbo.com
-Received: from [212.48.201.194] (port=40725 helo=[192.168.0.77]) by
-       mx3.mail.ru with asmtp  id 1DTqX4-0008GO-00 for orso@brturbo.com.br; Fri,
-       06 May 2005 04:17:31 +0400
-From: Oleg <xsov@mail.ru>
-To: Pedro Lineu Orso <orso@brturbo.com.br>
-Subject: Re: sarg-2.0.6 new patches
-Date: Fri, 6 May 2005 04:30:56 +0400
-User-Agent: KMail/1.7.2
-References: <200504241642.06841.xsov@mail.ru>
-        <1115290770.4499.7.camel@lcaklds49>
-In-Reply-To: <1115290770.4499.7.camel@lcaklds49>
-MIME-Version: 1.0
-Content-Type: Multipart/Mixed; boundary="Boundary-00=_BrreCrvUGWRZVaY"
-Message-Id: <200505060430.57213.xsov@mail.ru>
-X-Evolution-Source: pop://orso@pop.brturbo.com.br
-
-
---Boundary-00=_BrreCrvUGWRZVaY
-Content-Type: text/plain; charset="koi8-r"
-Content-Disposition: inline
-Content-Transfer-Encoding: 8bit
-
-Hello Pedro!
-
-PL > I have implemented your patches on sarg-2.0.7 and there are some sarg
-PL > users asking me
-PL > about this one:
-PL >
-PL > . Fixes segfault, produced by inproper use of strncpy functions, look -
-PL > strncpy
-PL >
-PL > Can you please explain when segfault happens?
-PL >
-PL > I've seen that the forth characted of month[] in index.c is set to null
-PL > to avoid strcat to segfault, but I cannot understand when this is
-PL > needed.
-
-I have big-big squid.log file, and this error is produced only when I use 
-"LongUrl=yes" option in configuration file, I deeply debug code and see, that 
-error was at that place of code. I also can assume that overrun of '\0' 
-symbol was produced by error in other part of code. If you want I can get 
-part of my squid.log file, which produce this error and send it to you with 
-my squid.conf file (but I can do this not so fast, because file is very 
-large, and I can't send sensitive information from it to anybody).
-
-I include here another my patches for new sarg 2.0.7 version:
-1) topuser.diff:
-URL size is too small for URL with coded symbols, like %2f for slash ('/') 
-symbol, I see URLs in my squid.log file with length about 1400 characters. So 
-because there was number 1024 (I don't know where you get it, may be from 
-some RFC?), and one symbol can be 3-times longer, I enlarge buffer to 3072 
-characters (3 x 1024).
-
-2) util.diff
-There I replace all '<=12' condition to '<12' because array of months has 12 
-elements, which are numbered from 0, so:
-0 - 1st (January)
-1 - 2nd (February)
-...
-11 - 12th (December)
-and condition <=12 will loop for 13 elements, that is wrong.
-
-I also remove unneeded 'return;' at the ends of some functions (I don't think 
-it is required for other operating systems).
-
-Regards, Oleg.
-
---Boundary-00=_BrreCrvUGWRZVaY
-Content-Type: text/x-diff; charset="koi8-r"; name="topuser.diff"
-Content-Disposition: attachment; filename="topuser.diff"
-Content-Transfer-Encoding: 8bit
-
---- sarg-2.0.7/topuser.c       2005-05-02 17:55:04.000000000 +0400
-+++ sarg-2.0.7rbs/topuser.c    2005-05-04 03:53:48.000000000 +0400
-@@ -38,7 +38,7 @@
-    int posicao=0;
-    char olduser[MAXLEN], csort[MAXLEN], periodo[MAXLEN], arqper[MAXLEN];
-    char wger[MAXLEN], top1[MAXLEN], top2[MAXLEN], top3[MAXLEN];
--   char user[MAXLEN], nacc[20], nbytes[20], url[1024], preg[8000], tusr[MAXLEN];
-+   char user[MAXLEN], nacc[20], nbytes[20], url[3072], preg[8000], tusr[MAXLEN];
-    char ip[MAXLEN], hora[9], data[11], elap[15], incac[15], oucac[15], html[MAXLEN];
-    char ipantes[MAXLEN], nameantes[MAXLEN];
-    char sfield[10]="2,2";
-
---Boundary-00=_BrreCrvUGWRZVaY
-Content-Type: text/x-diff; charset="koi8-r"; name="util.diff"
-Content-Disposition: attachment; filename="util.diff"
-Content-Transfer-Encoding: 8bit
-
---- sarg-2.0.7/util.c  2005-05-02 17:55:04.000000000 +0400
-+++ sarg-2.0.7rbs/util.c       2005-05-04 04:04:01.000000000 +0400
-@@ -246,7 +246,7 @@
-    ndia[0]='\0';
-    nmes[0]='\0';
--   for(x=0; x<=12; x++) {
-+   for(x=0; x<12; x++) {
-       if(strcmp(mtab1[x],mes) == 0) {
-          strncpy(nmes,mtab2[x],sizeof(nmes)-1);
-          nmes[sizeof(nmes)-1]=0;
-@@ -262,9 +262,6 @@
-    strncpy(dia,ndia,sizeof(dia)-1);
-    dia[sizeof(dia)-1]=0;
--
--   return;
--
- }
-@@ -275,15 +272,12 @@
-    nmes[0]='\0';
--   for(x=0; x<=12; x++) {
-+   for(x=0; x<12; x++) {
-       if(strcmp(mtab1[x],mes) == 0)
-          strcpy(nmes,mtab2[x]);
-    }
-    sprintf(wdata,"%s%s%s",ano,nmes,dia);
--
--   return;
--
- }
-@@ -291,13 +285,10 @@
- {
-    int  x;
--   for(x=0; x<=12; x++) {
-+   for(x=0; x<12; x++) {
-       if(strcmp(mtab1[x],month) == 0)
-          strcpy(month,mtab2[x]);
-    }
--
--   return;
--
- }
-@@ -305,7 +296,7 @@
- {
-    int x;
--   for(x=0; x<=12; x++) {
-+   for(x=0; x<12; x++) {
-       if(strcmp(mtab2[x],month) == 0)
-          strcpy(month,mtab1[x]);
-    }
-@@ -328,7 +319,7 @@
-    strncpy(ano,duntil,4);
-    ano[4]='\0';
--   for(x=0; x<=12; x++) {
-+   for(x=0; x<12; x++) {
-       if(strcmp(mtab2[x],mes) == 0)
-          strcpy(mes,mtab1[x]);
-    }
-@@ -339,23 +330,18 @@
-       sprintf(warea,"%s%s%s",ano,mes,dia);
-    strcat(periodo,warea);
--   return;
- }
- void debuga(char *msg)
- {
-   fprintf(stderr, "SARG: %s\n",msg);
--
--  return;
- }
- void debugaz(char *head, char *msg)
- {
-   fprintf(stderr, "SARG: (util) %s=%s\n",head, msg);
--
--  return;
- }
-@@ -384,8 +370,6 @@
-    }
-    ip[0]='\0';
-    sprintf(ip,"%s%s%s%s%s%s%s",n1,sep,n2,sep,n3,sep,wip);
--
--   return;
- }
-@@ -499,9 +483,6 @@
-    strcpy(href,"<a href='");
-    strcat(href,whref);
-    strcat(href,"/");
--
--   return;
--
- }
-@@ -541,9 +522,6 @@
-    fgets(data,80,fp_in);
-    fclose(fp_in);
-    data[strlen(data)-1]='\0';
--
--   return;
--
- }
-@@ -562,9 +540,6 @@
-    fgets(tuser,20,fp_in);
-    tuser[strlen(tuser)-1]='\0';
-    fclose(fp_in);
--
--   return;
--
- }
-@@ -603,9 +578,6 @@
-    wtuser=my_atoll(tuser);
-    med=my_atoll(warea) / wtuser;
-    sprintf(media,"%s",fixnum(med,1));
--
--   return;
--
- }
-@@ -631,9 +603,6 @@
-    if(debug)
-       debuga((char *)text[50]);
-- 
--   return;
-- 
- }
- void vrfydir(char *dir, char *per1, char *addr, char *site, char *us, char *form)
-@@ -733,10 +702,6 @@
-    }
-    (void) rewinddir(dirp);
-    (void) closedir(dirp);
--
--   return;
--
--
- }
-@@ -752,9 +717,6 @@
-       strcat(warea,line);
-       strcpy(line,warea);
-    }
--
--   return;
--
- }
- void zdate(char *ftime, char *DateFormat)
-@@ -771,8 +733,6 @@
-       strftime(ftime, 127, "%d/%b/%Y-%H:%M", local);
-    if(strcmp(DateFormat,"w") == 0)
-       strftime(ftime, 127, "%V-%H-%M", local);
--
--   return;
- }
-@@ -839,7 +799,6 @@
-    sprintf(dfrom,"%s%s%s",anof,mesf,diaf);
-    sprintf(duntil,"%s%s%s",anou,mesu,diau);
--   return;
- }
-@@ -928,8 +887,6 @@
-       sprintf(warea,"%s/periodo",outdir);
-       unlink(warea);
-    }
--  
--   return;
- }
- void load_excludecodes()
-@@ -951,8 +908,6 @@
-    }
-    fclose(fp_in);
--   return;
--
- }
- int vercode(char *code)
-@@ -976,8 +931,6 @@
-       str[strlen(str)-1]='\0';
-    if(strcmp(str,"none") == 0)
-       str[0]='\0';
--
--   return;
- }
- #ifdef LEGACY_TESTVALIDUSERCHAR
-@@ -1111,8 +1064,6 @@
-       w2[y]=w[x];
-       y++;
-    }
--
--   return;
- }
- void version()
-
---Boundary-00=_BrreCrvUGWRZVaY--
-
diff --git a/patches/oleg4 b/patches/oleg4
deleted file mode 100644 (file)
index 2adbaf1..0000000
+++ /dev/null
@@ -1,740 +0,0 @@
-From xsov@mail.ru Wed May 11 23:30:30 2005
-Received: 194.67.23.149 / smx1.brturbo.com
-Received: from [212.48.205.42] (port=32246 helo=[192.168.0.77]) by
-       mx3.mail.ru with asmtp  id 1DVwh2-0005nc-00 for orso@brturbo.com.br; Wed,
-       11 May 2005 23:16:29 +0400
-From: Oleg <xsov@mail.ru>
-To: Pedro Lineu Orso <orso@brturbo.com.br>
-Subject: Re: sarg-2.0.6 new patches
-Date: Wed, 11 May 2005 23:30:30 +0400
-User-Agent: KMail/1.7.2
-References: <200504241642.06841.xsov@mail.ru>
-        <200505060430.57213.xsov@mail.ru> <1115814131.8900.1.camel@lcaklds49>
-In-Reply-To: <1115814131.8900.1.camel@lcaklds49>
-MIME-Version: 1.0
-Content-Type: Multipart/Mixed; boundary="Boundary-00=_W1lgCFYB9s7BJUS"
-Message-Id: <200505112330.30670.xsov@mail.ru>
-X-Evolution-Source: pop://orso@pop.brturbo.com.br/
-
-
---Boundary-00=_W1lgCFYB9s7BJUS
-Content-Type: text/plain; charset="koi8-r"
-Content-Disposition: inline
-Content-Transfer-Encoding: 8bit
-
-Hello Pedro!
-
-I found the bugplace, it is already fixed by me in previous topuser.diff patch 
-for 2.0.7 (not by those 6 patches for 2.0.6), howeverer I include my log file 
-example here with configuration files:
-- sarg.conf;
-- exclude_codes;
-- access.log.
-
-It looks like in this access.log example the one symbol is replaced by 6 (for 
-example: %u049F), so in previous topuser.diff patch there must be 1024*6 = 
-6144 size for array url (I include new, modified topuser.diff patch for 
-2.0.7, which will fix this bug). So, for now, the part of old my patch for 
-2.0.6, which adds '\0' at the end of line is not necessary.
-
-I also include here my recommendations for "download_suffix" option default 
-value (look at extensions-was.txt for old values and extensions-be.txt for 
-new). I mark with star "(*)" symbol most important changes.
-
-Regards, Oleg.
-
-÷ ÓÏÏÂÝÅÎÉÉ ÏÔ óÒÅÄÁ 11 íÁÊ 2005 16:22 ×Ù ÎÁÐÉÓÁÌÉ:
-PL > Hello Oleg,
-PL >
-PL > May I have some of that log file to try to hack sarg, and you sarg.conf
-PL > file too, please?
-PL >
-PL > Thanks
-
---Boundary-00=_W1lgCFYB9s7BJUS
-Content-Type: text/plain; charset="koi8-r"; name="extensions-be.txt"
-Content-Disposition: attachment; filename="extensions-be.txt"
-Content-Transfer-Encoding: 8bit
-
-tgz   - archive
-tar   - archive(*)
-cpio  - archive
-zip   - archive
-arj   - archive
-bzip  - archive
-bz2   - archive
-gz    - archive
-rar   - archive
-ace   - archive
-lha   - archive
-lzh   - archive
-cab   - archive
-7z    - archive
-tar   - archive
-cpio  - archive
-
-doc   - office suite document
-mdb   - office suite document
-ppt   - office suite document
-rtf   - office suite document
-mso   - office suite document(?)
-dot   - office suite document(?)
-
-bin   - conatain binary executable
-com   - conatain binary executable
-sys   - conatain binary executable
-exe   - conatain binary executable
-dll   - conatain binary executable
-bin   - conatain binary executable
-scr   - conatain binary executable(*)
-bat   - conatain binary executable
-
-iso   - cd/dvd image
-nrg   - cd/dvd image
-vcd   - cd/dvd image(*)
-vob   - cd/dvd image(*)
-
-mp3   - multimedia
-avi   - multimedia
-mpg   - multimedia
-mpeg  - multimedia
-wma   - multimedia
-wmv   - multimedia(*)
-ogg   - multimedia
-mov   - multimedia
-
-===================================
-adt   - don't know
-drv$  - don't know
-src   - don't know
-shs   - don't know
-
---Boundary-00=_W1lgCFYB9s7BJUS
-Content-Type: text/x-diff; charset="koi8-r"; name="topuser.diff"
-Content-Disposition: attachment; filename="topuser.diff"
-Content-Transfer-Encoding: 8bit
-
---- sarg-2.0.7/topuser.c       2005-05-02 17:55:04.000000000 +0400
-+++ sarg-2.0.7rbs/topuser.c    2005-05-04 03:53:48.000000000 +0400
-@@ -38,7 +38,7 @@
-    int posicao=0;
-    char olduser[MAXLEN], csort[MAXLEN], periodo[MAXLEN], arqper[MAXLEN];
-    char wger[MAXLEN], top1[MAXLEN], top2[MAXLEN], top3[MAXLEN];
--   char user[MAXLEN], nacc[20], nbytes[20], url[1024], preg[8000], tusr[MAXLEN];
-+   char user[MAXLEN], nacc[20], nbytes[20], url[6144], preg[8000], tusr[MAXLEN];
-    char ip[MAXLEN], hora[9], data[11], elap[15], incac[15], oucac[15], html[MAXLEN];
-    char ipantes[MAXLEN], nameantes[MAXLEN];
-    char sfield[10]="2,2";
-
---Boundary-00=_W1lgCFYB9s7BJUS
-Content-Type: text/plain; charset="koi8-r"; name="extensions-was.txt"
-Content-Disposition: attachment; filename="extensions-was.txt"
-Content-Transfer-Encoding: 8bit
-
-tgz   - archive
-zip   - archive
-arj   - archive
-bzip  - archive
-bz2   - archive
-gz    - archive
-rar   - archive
-ace   - archive
-lha   - archive
-lzh   - archive
-cab   - archive
-
-doc   - office suite document
-mdb   - office suite document
-ppt   - office suite document
-rtf   - office suite document
-mso   - office suite document(?)
-dot   - office suite document(?)
-
-bin   - conatain binary executable
-com   - conatain binary executable
-sys   - conatain binary executable
-exe   - conatain binary executable
-dll   - conatain binary executable
-bin   - conatain binary executable
-
-iso   - cd/dvd image
-
-mp3   - multimedia
-avi   - multimedia
-mpg   - multimedia
-mpeg  - multimedia
-
-===================================
-adt   - don't know
-drv$  - don't know
-src   - don't know
-shs   - don't know
-
---Boundary-00=_W1lgCFYB9s7BJUS
-Content-Type: text/plain; charset="koi8-r"; name="sarg.conf"
-Content-Disposition: attachment; filename="sarg.conf"
-Content-Transfer-Encoding: 8bit
-
-# sarg.conf
-#
-# TAG:  language 
-#      Available languages:
-#              Bulgarian_windows1251
-#              Catalan
-#              Czech
-#              Dutch
-#              English
-#              French
-#              German
-#              Hungarian
-#              Indonesian
-#              Italian
-#              Japanese
-#              Latvian
-#              Polish
-#              Portuguese
-#              Romanian
-#              Russian_koi8
-#              Russian_windows1251
-#              Serbian
-#              Spanish
-#              Turkish
-#
-language Russian_koi8
-
-# TAG:  access_log file
-#       Where is the access.log file
-#       sarg -l file
-#
-access_log /mnt/access.log
-
-# TAG: graphs yes|no
-#      Use graphics where is possible.
-#           graph_days_bytes_bar_color blue|green|yellow|orange|brown|red
-#
-graphs yes
-graph_days_bytes_bar_color orange
-
-# TAG: title
-#      Especify the title for html page.
-#
-
-# TAG: font_face
-#      Especify the font for html page.
-#
-font_face Tahoma,Verdana,Arial
-
-# TAG: header_color
-#      Especify the header color
-#
-header_color darkblue
-
-# TAG: header_bgcolor
-#      Especify the header bgcolor
-#
-header_bgcolor blanchedalmond
-
-# TAG: font_size
-#      Especify the text font size
-#
-font_size 10px
-
-# TAG: header_font_size
-#      Especify the header font size
-#
-header_font_size 10px
-
-# TAG: title_font_size
-#      Especify the title font size
-#
-title_font_size 20px
-
-# TAG: background_color
-# TAG: background_color
-#      Html page background color
-#
-background_color white
-
-# TAG: text_color
-#      Html page text color
-#
-text_color #000000
-
-# TAG: text_bgcolor
-#      Html page text background color
-#
-text_bgcolor lavender
-
-# TAG: title_color
-#      Html page title color
-#
-title_color green
-
-# TAG: logo_image
-#      Html page logo.
-#
-
-# TAG: logo_text
-#      Html page logo text.
-#
-#logo_text ""
-
-# TAG: logo_text_color
-#      Html page logo texti color.
-#
-#logo_text_color #000000
-
-# TAG: logo_image_size
-#      Html page logo image size. 
-#       width height
-#
-image_size 253 35
-
-# TAG: background_image
-#      Html page background image
-#
-#background_image none
-
-# TAG:  password
-#       User password file used by authentication
-#       If used here, reports will be generated only for that users.
-#
-password none
-
-# TAG:  temporary_dir
-#       Temporary directory name for work files
-#       sarg -w dir
-#
-temporary_dir /tmp
-
-# TAG:  output_dir
-#       The reports will be saved in that directory
-#       sarg -o dir
-#
-output_dir /xxx
-
-# TAG:  output_email
-#       Email address to send the reports. If you use this tag, no html reports will be generated.
-#       sarg -e email
-#
-output_email none
-
-# TAG:  resolve_ip yes/no
-#       Convert ip address to dns name
-#       sarg -n
-resolve_ip no
-
-# TAG:  user_ip yes/no
-#       Use Ip Address instead userid in reports.
-#       sarg -p
-user_ip no
-
-# TAG:  topuser_sort_field field normal/reverse
-#       Sort field for the Topuser Report.
-#       Allowed fields: USER CONNECT BYTES TIME
-#
-topuser_sort_field BYTES reverse
-
-# TAG:  user_sort_field field normal/reverse
-#       Sort field for the User Report.
-#       Allowed fields: SITE CONNECT BYTES TIME
-#
-user_sort_field BYTES reverse
-
-# TAG:  exclude_users file
-#       users within the file will be excluded from reports.
-#       you can use indexonly to have only index.html file.
-#
-exclude_users none
-
-# TAG:  exclude_hosts file
-#       Hosts, domains or subnets will be excluded from reports.
-#
-#       Eg.: 192.168.10.10 - exclude ip address only
-#            192.168.10.0  - exclude full C class
-#            s1.acme.foo   - exclude hostname only
-#            acme.foo      - exclude full domain name
-#
-exclude_hosts none
-
-# TAG:  useragent_log file
-#       Put here where is useragent.log to nable useragent report.
-#
-#useragent_log none
-
-# TAG:  date_format
-#       Date format in reports: e (European=dd/mm/yy), u (American=mm/dd/yy), w (Weekly=yy.ww)
-#       
-date_format e
-
-# TAG:  per_user_limit file MB
-#       Saves userid on file if download exceed n MB.
-#       This option allow you to disable user access if user exceed a download limit.
-#       
-per_user_limit none
-
-# TAG: lastlog n
-#      How many reports files must be keept in reports directory.
-#      The oldest report file will be automatically removed.
-#      0 - no limit.
-#
-lastlog 0
-
-# TAG: remove_temp_files yes
-#      Remove temporary files: geral, usuarios, top, periodo from root report directory.
-#
-remove_temp_files yes
-
-# TAG: index yes|no|only
-#      Generate the main index.html.
-#      only - generate only the main index.html
-#
-index yes
-
-# TAG: overwrite_report yes|no
-#      yes - if report date already exist then will be overwrited.
-#       no - if report date already exist then will be renamed to filename.n, filename.n+1
-#
-overwrite_report yes
-
-# TAG: records_without_userid ignore|ip|everybody
-#      What can I do with records without user id (no authentication) in access.log file ?
-#
-#      ignore - This record will be ignored.
-#          ip - Use ip address instead. (default)
-#   everybody - Use "everybody" instead.
-#
-records_without_userid ip
-
-# TAG: use_comma no|yes
-#      Use comma instead point in reports.
-#      Eg.: use_comma yes => 23,450,110
-#           use_comma no  => 23.450.110
-#
-use_comma no
-
-# TAG: mail_utility mail|mailx
-#      Mail command to use to send reports via SMTP
-#
-#mail_utility mailx
-
-# TAG: topsites_num n
-#      How many sites in topsites report.
-#
-topsites_num 100
-
-# TAG: topsites_sort_order CONNECT|BYTES A|D
-#      Sort for topsites report, where A=Ascendent, D=Descendent
-#
-topsites_sort_order BYTES D
-
-# TAG: index_sort_order A/D
-#      Sort for index.html, where A=Ascendent, D=Descendent
-#
-index_sort_order D
-
-# TAG: exclude_codes file
-#      Ignore records with these codes. Eg.: NONE/400
-#
-exclude_codes /xxx/exclude_codes
-
-# TAG: replace_index string
-#      Replace "index.html" in the main index file with this string
-#      If null "index.html" is used 
-#
-#replace_index <?php echo str_replace(".", "_", $REMOTE_ADDR); echo ".html"; ?>
-
-# TAG: max_elapsed milliseconds
-#      If elapsed time is recorded in log is greater than max_elapsed use 0 for elapsed time.
-#      Use 0 for no checking 
-#
-max_elapsed 0
-# 8 Hours
-#max_elapsed 28800000
-
-# TAG: report_type type
-#      What kind of reports to generate.
-#      topsites                   - shows the site, connect and bytes
-#      sites_users        - shows which users were accessing a site
-#      users_sites        - shows sites accessed by the user
-#      date_time          - shows the amount of bytes used by day and hour
-#      denied             - shows all denied sites with full URL
-#      auth_failures       - shows autentication failures
-#      site_user_time_date - shows sites, dates, times and bytes
-#
-#      Eg.: report_type topsites denied 
-#
-#report_type topsites sites_users users_sites date_time denied auth_failures site_user_time_date
-report_type topsites sites_users users_sites date_time denied auth_failures site_user_time_date
-
-# TAG: usertab filename
-#      You can change the "userid" or the "ip address" to be a real user name on the rpeorts.
-#      Table syntax:
-#              userid name   or   ip address name
-#      Eg:
-#              SirIsaac Isaac Newton
-#              vinci Leonardo da Vinci
-#              192.168.10.1 Karol Wojtyla
-#      
-#      Each line must be terminated with '\n'
-#
-
-# TAG: long_url yes|no
-#      If yes, the full url is showed in report.
-#      If no, only the site will be showed
-#
-#      YES option generate very big sort files and reports.
-#
-long_url yes
-
-# TAG: date_time_by bytes|elap
-#      Date/Time reports will use bytes or elapsed time?
-#
-date_time_by bytes
-
-# TAG: charset name
-#      ISO 8859 is a full series of 10 standardized multilingual single-byte coded (8bit)
-#      graphic character sets for writing in alphabetic languages
-#      You can use the following charsets:
-#              Latin1          - West European
-#              Latin2          - East European 
-#              Latin3          - South European 
-#              Latin4          - North European 
-#              Cyrillic 
-#              Arabic 
-#              Greek 
-#              Hebrew 
-#              Latin5          - Turkish 
-#              Latin6
-#              Windows-1251
-#              Koi8-r
-#
-charset KOI8-R
-
-# TAG: user_invalid_char "&/"
-#      Records that contain invalid characters in userid will be ignored by Sarg.
-#
-#user_invalid_char "&/"
-
-# TAG: privacy yes|no
-#      privacy_string "***.***.***.***"
-#      privacy_string_color blue
-#      In some countries the sysadm cannot see the visited sites by a restrictive law.
-#      Using privacy yes the visited url will be changes by privacy_string and the link
-#      will be removed from reports.
-#
-privacy no
-#privacy_string "***.***.***.***"
-#privacy_string_color blue
-
-# TAG: include_users "user1:user2:...:usern"
-#      Reports will be generated only for listed users.
-#
-#include_users none
-
-# TAG: exclude_string "string1:string2:...:stringn"
-#      Records from access.log file that contain one of listed strings will be ignored.
-#
-#exclude_string none
-
-# TAG: show_successful_message yes|no
-#      Shows "Successful report generated on dir" at end of process.
-#
-show_successful_message no
-
-# TAG: show_read_statistics yes|no
-#      Shows some reading statistics.
-#
-show_read_statistics no
-
-# TAG: topuser_fields
-#      Which fields must be in Topuser report.
-#
-topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES TOTAL AVERAGE
-
-# TAG: user_report_fields
-#      Which fields must be in User report.
-#
-user_report_fields CONNECT BYTES %BYTES TOTAL AVERAGE
-
-# TAG: topuser_num n
-#      How many users in topsites report. 0 = no limit
-#
-topuser_num 0
-
-# TAG: site_user_time_date_type list|table
-#      generate reports for site_user_time_date in list or table format
-#
-site_user_time_date_type table
-
-# TAG: datafile file
-#      Save the report results in a file to populate some database
-#
-#datafile none
-#datafile /tmp/p8
-
-# TAG: datafile_delimiter ";"
-#      ascii character to use as a field separator in datafile
-#
-#datafile_delimiter ";"
-
-# TAG: datafile_fields all
-#      Which data fields must be in datafile
-#      user;date;time;url;connect;bytes;in_cache;out_cache;elapsed
-#
-#datafile_fields user;date;time;url;connect;bytes;in_cache;out_cache;elapsed
-
-# TAG: weekdays
-#      The weekdays to take account ( Sunday->0, Saturday->6 )
-# Example:
-#weekdays 1-3,5
-# Default:
-weekdays 0-6
-
-# TAG: hours
-#      The hours to take account
-# Example:
-#hours 7-12,14,16,18-20
-# Default:
-hours 0-23
-
-# TAG: squidguard_conf file
-#      path to squidGuard.conf file
-#      Generate reports from SquidGuard logs.
-#      Use 'none' to disable.
-#      squidguard_conf /usr/local/squidGuard/squidGuard.conf
-#
-#squidguard_conf none
-
-# TAG: squidguard_log_format
-#      Format string SquidGuard logs.
-#      REJIK       #year#-#mon#-#day# #hour# #list#:#tmp# #ip# #user# #tmp#/#tmp#/#url#/#end#
-#      SQUIDGUARD  #year#-#mon#-#day# #hour# #tmp#/#list#/#tmp#/#tmp#/#url#/#tmp# #ip#/#tmp# #user# #end#
-#squidguard_log_format #year#-#mon#-#day# #hour# #tmp#/#list#/#tmp#/#tmp#/#url#/#tmp# #ip#/#tmp# #user# #end#
-
-# TAG: show_sarg_info yes|no
-#      shows sarg information and site path on each report bottom
-#
-show_sarg_info no
-
-# TAG: show_sarg_logo yes|no
-#      shows sarg logo
-#
-show_sarg_logo no
-
-# TAG: parsed_output_log directory
-#      Saves the processed log in a sarg format after parsing the squid log file.
-#      This is a way to dump all of the data structures out, after parsing from 
-#      the logs (presumably this data will be much smaller than the log files themselves),
-#      and pull them back in for later processing and merging with data from previous logs.
-#
-#parsed_output_log none
-
-# TAG parsed_output_log_compress /bin/gzip|/usr/bin/bzip2|nocompress
-#      sarg logs compress util
-#
-#parsed_output_log_compress /bin/gzip
-
-# TAG displayed_values bytes|abbreviation
-#      how the values will be displayed in reports.
-#      eg. bytes       -  209.526
-#          abbreviation -  210K
-#
-displayed_values bytes
-
-# Report limits
-# TAG authfail_report_limit n
-# TAG denied_report_limit n
-# TAG siteusers_report_limit n
-# TAG squidguard_report_limit n
-# TAG user_report_limit n
-#      report limits (lines).
-#      '0' no limit
-#
-authfail_report_limit 0
-denied_report_limit 0
-siteusers_report_limit 0
-squidguard_report_limit 0
-user_report_limit 0
-
-# TAG www_document_root dir
-#     Where is your Web DocumentRoot
-#     Sarg will create sarg-php directory with some PHP modules:
-#     - sarg-squidguard-block.php - add urls from user reports to squidGuard DB
-#
-www_document_root /xxx
-
-# TAG block_it module_url
-#     This tag allow you to pass urls from user reports to a cgi or php module,
-#     to be blocked by some Squid acl
-#
-#     Eg.: block_it /sarg-php/sarg-block-it.php
-#     sarg-block-it is a php that will append a url to a flat file.
-#     You must change /var/www/html/sarg-php/sarg-block-it to point to your file
-#     in $filename variable, and chown to a httpd owner.
-#
-#     sarg will pass http://module_url?url=url
-#
-block_it none
-
-# TAG external_css_file path
-#     This tag allow internal sarg css override.
-#     Sarg use theses style classes:
-#      .body           body class
-#      .info           sarg information class, align=center
-#      .title          title class, align=center
-#      .header         header class, align:left
-#      .header2        header class, align:right
-#      .header3        header class, align:right
-#      .text           text class, align:left
-#      .data           table text class, align:right
-#      .data2          table text class, align:right, border colors
-#      .link           link class
-#
-#     There is a sample in /usr/local/sarg/etc/css.tpl
-#
-#external_css_file none
-
-# TAG user_authentication yes|no
-#     Allow user authentication in User Reports using .htaccess
-#     Parameters:  
-#      AuthUserFile    - where the user password file is
-#      AuthName        - authentication realm. Eg "Members Only"
-#      AuthType        - authenticaion type - basic
-#      Require         - authorized users to see the report.
-#                                          %u - user report
-#
-# user_authentication no
-# AuthUserFile /usr/local/sarg/passwd
-# AuthName "SARG, Restricted Access"
-# AuthType Basic
-# Require user admin %u
-
-# TAG download_suffix "suffix,suffix,...,suffix"
-#    file suffix to be considered as "download" in Download report.
-#    Use 'none' to disable.    
-#
-download_suffix "tgz,zip,arj,bzip,bz2,gz,rar,ace,doc,iso,adt,bin,cab,com,dot,drv$,lha,lzh,mdb,mso,ppt,rtf,src,shs,sys,exe,dll,mp3,avi,mpg,mpeg"
-
---Boundary-00=_W1lgCFYB9s7BJUS
-Content-Type: text/x-log; charset="koi8-r"; name="access.log"
-Content-Disposition: attachment; filename="access.log"
-Content-Transfer-Encoding: 8bit
-
-1112196006.509    265 192.168.77.15 TCP_MISS/200 296 GET http://kmindex.ru/c/?id=313791&id2=48&v=30&l=http%3A//www.alkonvvs.ru/&r=http%3A//www.yandex.ru/yandsearch%3Ftext%3D%25D2%25EE%25F0%25E3%25EE%25E2%25FB%25E5+%25E2%25E8%25F2%25F0%25E8%25ED%25FB%26holdreq%3D%25D2%25EE%25F0%25E3%25EE%25E2%25EE%25E5+%25EE%25E1%25EE%25F0%25F3%25E4%25EE%25E2%25E0%25ED%25E8%25E5%26stype%3Dwww&t=%u0422%u043E%u0440%u0433%u043E%u0432%u043E%u0435%20%u043E%u0431%u043E%u0440%u0443%u0434%u043E%u0432%u0430%u043D%u0438%u0435%2C%20%u043F%u0440%u043E%u0434%u0430%u0436%u0430%20%u0442%u043E%u0440%u0433%u043E%u0432%u043E%u0433%u043E%20%u043E%u0431%u043E%u0440%u0443%u0434%u043E%u0432%u0430%u043D%u0438%u044F%3A%20%u0432%u0438%u0442%u0440%u0438%u043D%u0430%20%u0438%20%u0432%u0438%u0442%u0440%u0438%u043D%u044B%20%u0438%u0437%20%u0430%u043B%u044E%u043C%u0438%u043D%u0438%u0435%u0432%u043E%u0433%u043E%20%u043F%u0440%u043E%u0444%u0438%u043B%u044F%2C%20%u043F%u0440%u043E%u0441%u0442%u043E%20%u0430%u043B%u044E%u043C%u0438%u043D%u0438%u0435%u0432%u044B%u0439%20%u043F%u0440%u043E%u0444%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u0432%u044B%u0441%u0442%u0430%u0432%u043E%u0447%u043D%u043E%u0433%u043E%20%u043E%u0431%u043E%u0440%u0443%u0434%u043E%u0432%u0430%u043D%u0438%u044F%20-%20%u043E%u0442%20%u043A%u043E%u043C%u043F%u0430%u043D%u0438%u0438%20ALCON-BBC&f=0&d=0.95783290883686160.014756022435909899 - DIRECT/217.174.98.3 image/gif
-
---Boundary-00=_W1lgCFYB9s7BJUS
-Content-Type: text/plain; charset="koi8-r"; name="exclude_codes"
-Content-Disposition: attachment; filename="exclude_codes"
-Content-Transfer-Encoding: 8bit
-
-NONE/400
-TCP_MEM_HIT/200
-TCP_REFRESH_HIT/304
-TCP_REFRESH_HIT/200
-TCP_IMS_HIT/304
-TCP_HIT/200
-TCP_NEGATIVE_HIT/404
-
---Boundary-00=_W1lgCFYB9s7BJUS--
-
diff --git a/realtime.c b/realtime.c
new file mode 100755 (executable)
index 0000000..e33c831
--- /dev/null
@@ -0,0 +1,169 @@
+/*
+ * AUTHOR: Pedro Lineu Orso                      orso@penguintech.com.br
+ *                                                            1998, 2005
+ * SARG Squid Analysis Report Generator      http://sarg.sourceforge.net
+ *
+ * SARG donations:
+ *      please look at http://sarg.sourceforge.net/donations.php
+ * ---------------------------------------------------------------------
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
+ *
+ */
+
+#include "include/conf.h"
+
+void getdata(char *, FILE *);
+void datashow(char *);
+
+char dat[128];
+char tim[128];
+char typ[128];
+char ouser[MAXLEN]="";
+char ourl[MAXLEN]="";
+
+void
+realtime(int argc, char *argv[])
+{
+
+   getlog();
+
+}
+
+void getlog()
+{
+   FILE *tmp, *fp;
+   char template1[255]="/var/tmp/sargtpl1.XXXXXX";
+   char template2[255]="/var/tmp/sargtpl2.XXXXXX";
+   char cmd[512];
+   char buf[512];
+   int fd1,fd2;
+
+   fd1 = mkstemp(template1);
+   fd2 = mkstemp(template2);
+
+   if((fd1 == -1 ) || ((tmp = fdopen (fd1, "w+" )) == NULL)  ) {    /* failure, bail out */
+       fprintf(stderr, "SARG: (realtime) mkstemp error - %s\n",strerror(errno));
+       exit(1);
+   }
+
+   sprintf(cmd,"tail -%d %s",realtime_access_log_lines,AccessLog);
+   fp = popen(cmd, "r");
+   while(fgets(buf,sizeof(buf),fp) != NULL )
+      getdata(buf,tmp);
+   pclose(fp);
+   fclose(tmp);
+
+   sprintf(cmd,"sort -k 4,4 -k 5,5 -o %s %s",template2,template1);
+   system(cmd);
+   unlink(template1);
+   datashow(template2);
+}
+
+void getdata(char *rec, FILE *ftmp)
+{
+   time_t tt;
+   struct tm *t;
+
+   getword3(dat,rec,' ');
+   getword3(warea,rec,' ');
+   while(strcmp(warea,"") == 0 && strlen(rec) > 0)
+      getword3(warea,rec,' ');
+   getword3(ip,rec,' ');
+   getword3(warea,rec,' ');
+   getword3(warea,rec,' ');
+   getword3(typ,rec,' ');
+   if(strncmp(typ,"CONNECT",7) == 0) {
+      getword3(url,rec,' ');
+      getword3(user,rec,' ');
+    }else {
+      getword3(url,rec,'/');
+      getword3(url,rec,'/');
+      getword3(url,rec,'/');
+      getword3(user,rec,' ');
+      getword3(user,rec,' ');
+   }
+
+   if(strncmp(user,"-",1) == 0 && strcmp(RealtimeUnauthRec,"ignore") == 0)
+      return;
+
+   tt=atoi(dat);
+   t=localtime(&tt);
+   if(strncmp(DateFormat,"u",1) == 0)
+      strftime(tbuf, 127, "%Y-%m-%d %H:%M", t);
+   else if(strncmp(DateFormat,"e",1) == 0)
+      strftime(tbuf, 127, "%d-%m-%Y %H:%M", t);
+
+   sprintf(warea,"%s %s %s %s %s\n",tbuf,ip,user,url,typ);
+   fputs(warea,ftmp);
+}
+
+void datashow(char *tmp)
+{
+   FILE *fin;
+   char buf[MAXLEN];
+
+   if((fin=fopen(tmp,"r"))==NULL) {
+      fprintf(stderr, "SARG: (realtime) open error %s - %s\n",tmp,strerror(errno));
+      exit(1);
+   }
+
+   header();
+
+   while(fgets(buf, MAXLEN, fin)) {
+      buf[strlen(buf)-1]='\0';
+      getword3(dat,buf,' ');
+      getword3(tim,buf,' ');
+      getword3(ip,buf,' ');
+      getword3(user,buf,' ');
+      if(strlen(dat) < 3 || strlen(user) < 1) continue;
+      getword3(url,buf,' ');
+      getword3(typ,buf,' ');
+      if(strstr(RealtimeTypes,typ) == 0)
+         continue;
+
+      if(strcmp(ouser,user) == 0 && strcmp(ourl,url) == 0)
+         continue;
+
+      printf("<tr><td class=\"data\">%s %s</td><td class=\"data3\">%s</td><td class=\"data3\">%s</td><td class=\"data3\">%s</td><td class=\"data2\"><a href=\"http://%s\">%s</td></tr>\n",dat,tim,ip,user,typ,url,url);
+      strcpy(ouser,user);
+      strcpy(ourl,url);
+   }
+
+   puts("</table>\n</html>\n");
+   fclose(fin);
+   unlink(tmp);
+   fflush(NULL);
+   
+}
+
+void header()
+{
+   puts("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"");
+   puts(" \"http://www.w3.org/TR/html4/loose.dtd\">\n");
+   puts("<html>\n");
+   puts("<head>\n");
+   if(realtime_refresh)
+      printf("  <meta http-equiv=refresh content=\"%d\" url=\"sarg-php/sarg-realtime.php\"; charset=\"%s\">\n",realtime_refresh,CharSet);
+   else
+      printf("  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\">\n",CharSet);
+   css(stdout);
+   puts("</head>\n");
+   printf(buf,"<body style=\"font-family:%s;font-size:%s;background-color:%s;background-image:url(%s)\">\n",FontFace,TitleFontSize,BgColor,BgImage);
+   puts("<center><table cellpadding=\"1\" cellspacing=\"1\">\n");
+   printf("<tr><th class=\"title2\" colspan=\"10\">SARG %s</th></tr>\n",text[134]);
+   printf("<tr><th class=\"text\" colspan=\"10\">%s: %d s</th></tr>\n",text[136],realtime_refresh);
+   printf("<tr><th class=\"header3\">%s</th><th class=\"header3\">%s</th><th class=\"header3\">%s</th><th class=\"header3\">%s</th><th class=\"header\">%s</th></tr>\n",text[110],text[111],text[98],text[135],text[91]);
+}