1SARG ChangeLog
2
3Jan-16-2020 Version 2.4.0
4        - Update translations.
5
6Dec-24-2019 Version 2.4.0-pre3
7		- Useragent report is produced if information is available.
8		- Don't abort if DNS resolution is failing to resolve a host IP address.
9		- xz compressed log files are supported.
10		- Compressed redirector logs are now supported.
11		- Filter converted and split logs using -t command line option.
12		- Add many new buffer overflow checks.
13		- Use random temporary directory name by default.
14		- Many bug fixed.
15		- Many new features added.
16
17Jul-16-2012 Version 2.3.3-pre2
18		- Don't abort the report generation due to an error in a squidGuard error (wrapped over log lines).
19		- Support for gd, ldap and iconv can be disabled during configuration.
20		- Suppress the blank line breaking the header of the e-mail report.
21		- Add many debug messages to help understanding why some parts of the report are not produced. Considering all the options and various conditions that are involved in the creation of a report, that help is welcome.
22		- Fix the report generation if users_sites is disabled.
23		- Avoid a possible name clash among the temporary files if a user happen to have the same name as one of the files sarg generates.
24		- Fix various links and reports when some options are disabled.
25		- Accept regular expressions in the hostalias file.
26		- URL in SquidGuard logs sometime don't have a scheme. This is now handled properly.
27		- Exclude hosts based on the IPv4 address even if a port number is suffixed after the IP address. (thanks to Mark Easter for reporting the bug).
28		- IP addresses can be resolved to host names using an external program.
29		- Limit the maximum line length read from the input log to avoid consuming all the memory when reading a corrupted or invalid file. The limit is set to 10MB per line.
30		- Protect the temporary directory against unsafe deletion (if the temporary path is set to a wrong location, sarg won't blindly wipe the directory).
31		- The smartfilter might be fixed (I need test logs to validate this change. If you have some, please send them to fmarchal at users.sourceforge.net).
32		- The top sites report can be sorted according to the number of users who visited each site.
33
34Dec-07-2011 Version 2.3.2
35		- Add support for sorttable.js (http://www.kryogenix.org/code/browser/sorttable/) to dynamically sort some tables (thanks to Éric).
36		- Add the two command line options --lastlog and --keeplogs to set the number of reports to keep or to keep all the reports respectively (thanks to Emmanuel Lacour for the suggestion).
37		- Report the user ID in the e-mail report.
38		- Add an option to sort the top sites by time.
39		- Delete unused files from the directory containing the user report (thanks to alf-man).
40		- Add the index_fields option to hide the directory size column in the index sorted by date.
41		- Split the input log file in several files each containing one day worth of data (thanks to Mauricio Silveira).
42		- Take the date_format into account when converting a log file.
43		- Accept IPv6 addresses in the realtime report.
44		- Don't fail for an empty report directory when building the index.
45		- Fix a read error when parsing the time of a common log format (thanks to Richard P Scott).
46		- Use anonymous file and directory names in the report to hide the identity of the user whose report is displayed and shorten the total path length.
47		- More robust calls to external sort commands (guard against buffer overflows and use tab as column separator).
48		- Replace host names by aliases and group identicaly aliased host names.
49		- IPv6 is accepted in the hosts exclusion list.
50		- Discriminate between users whose name produce the same mangled temporary file name.
51		- Write a note about the number of entries ignored in the reports (thanks to Iain Lopata).
52		- Command line option -z output some messages to explain why the reports are not generated due to the configuration.
53		- The Sites & Users report page links to the user's page if the user is listed in the Top Users page.
54
55Sep-18-2010 Version 2.3.1
56		- Remove the distinct printf for the alpha architecture as it doesn't work anymore and is not necessary anyway.
57		- Don't abort if "onload" or "script" is found in the user agent string.
58		- Take the configured locale path into account when installing sarg.
59		- Fix the realtime and e-mail reports.
60		- Allow for the translation of the sort criterion on the report pages.
61		- The mail_utility command isn't quoted any more so it is possible to add some command line arguments.
62		- Fix a wrongly reported error if the two "hours" and "weekdays" options are enabled in sarg.conf (thanks to guyizsolt).
63		- Add a link on the denied page to link the page to the corresponding user.
64		- Fix a problem with the progress indicator when reading from a compressed log file.
65		- Report an error if the output directory is a subdirectory of the temporary directory.
66		- Use a more robust protection against an attack using javascript in the useragent string.
67		- Prevent a segfault if the parameter passed to command line option -d is invalid (thanks to ItalianPenguin).
68		- Check for the return code of the tail command to generate the realtime report.
69		- Escape the invalid characters in the LDAP search string instead of truncating it at the first invalid character (thanks to mouchar for reporting the problem and testing the fix).
70
71Jun-21-2010 Version 2.3
72		- LDAP usertab added.
73		  Now you can have your users in a LDAP Server.
74		  Use these tags in sarg.conf: LDAPHost, LDAPPort, LDAPBindDN, LDAPBindPW,
75		                               LDAPBaseSearch, LDAPFilterSearch
76		- Parse the string flags from sarg.conf once during the reading of sarg.conf instead of manipulating and duplicating the tests of the strings where they are used.
77		- Useragent report limited to requested date range.
78		- Link to external css file instead of including it verbatim in each HTML file (thanks to Maxim Britov).
79		- Enable gettext configuration for autotools.
80		- Use gettext translations instead of the custom languages files.
81		- Keep the user name unchanged in the report (suppress the replacement of some characters by underscores).
82		- Try to resolve a user's IP address only once and store the result. It can speed up the processing a lot.
83		- Resolve IPv6 addresses (to be tested).
84		- Don't limit the maximum length of a URL (the only limit is that a single line of text from the log file must fit in memory).
85		- The creation of the datafile is working again.
86		- Use a template to build the .htaccess file of each report.
87		- Accept spaces in the replacement label of the usertab file (thanks to Alex Sav).
88		- Change the version number of the release candidate to conform to the numbering of the translationproject.org.
89		- Store the period internaly and get rid of the sarg-period file.
90		- Display the period using the locale's month name in the HTML files.
91		- Check the correct writing of the HTML files (thanks to Markus Elfring).
92		- Use the word "Redirector" instead of mentioning explicitly squidGuard in the reports as at least Rejik is compatible with sarg (thanks to Maxim Britov).
93		- The date range passed as argument is not restricted to the actual range covered by the log files any more.
94		- Fix the exclusion of status codes to exclude more than one code.
95		- Accept date ranges for -d command line option as day-n, week-n and month-n where n is the number of backward days, weeks and months to report.
96		- Strengthen the making of the report file name to drastically limit the characters from the user ID that can appear in the file name. The presence of an unescaped backquote in the user ID would execute the rest of the name as a shell command (fixes bug #2997707 reported by anonymous).
97		- Purge the content of sarg-general to free a lot of disk space.
98		- Use parameteric dimensions in the graph creation instead of hard coded constants.
99		- Remove the temporary file and sorting in graph creation.
100		- Add the redirector_log option in sarg.conf to read a log file created by squidGuard or Rejik (thanks to Maxim Britov for pointing out this missing option).
101		- Allow up to 64 redirector log files to be passed through the command line option -L and the sarg.conf option redirector_log.
102		- Configuration option squidguard_log_format renamed into redirector_log_format for equity with the various redirectors that can be used with sarg.
103		- Read a compressed log file through a pipe.
104		- The graph was wrong. The bars were not reaching the correct height with respect to the Y axis.
105		- Use a computed logarithmic scale for the Y axis when plotting bytes data instead of a fixed scale.
106		- Show the time when plotting the elapsed time.
107		- Fix the reporting of only one user with command line option -u.
108		- Output both date/time textual and graphical reports.
109		- Sarg log file now stores the date in the format dd/mm/yyyy and doesn't change it depending on the current date representation selected in sarg.conf. It will break existing sarg log files.
110		- Intermediary log files store the date as dd/mm/yyyy irrespective of the current date representation in sarg.conf.
111		- Fix a regression to accept any directory name length in the index.
112		- Change the CSS template file and cleanup of the hardcoded styles (thanks to Maxim Britov).
113		- Accept unlimited line length when converting or splitting the log file.
114		- Use long options on the command line.
115		- Sarg can output the internal css inlined in the reports. It replaces the css.tpl distributed with the sources.
116		- Command line option -l is optional. The input log files may be named on the command line without prefixing them with -l. It allows the use of wildcards in the command line.
117		- Accept unlimited URL length in the redirector log (thanks to Joseph L Casale).
118		- Replace redirector_ignore_date by redirector_filter_out_date that behave as the name implies.
119		- Replace dansguardian_ignore_date by dansguardian_filter_out_date that behave as the name implies.
120
121Feb-10-2010 Version 2.2.7.1
122		- Fixed compilation error reported by some compilers due to an sizeof in a fprintf (thanks to Maxim Britov and Renato Botelho).
123		- The path to the font used to create the graphs can be set in sarg.conf.
124		- The installation of our fonts can be disabled with --disable-fontdir.
125
126Feb-05-2010 Version 2.2.7
127		- Extra compile and run time protection (FORTIFY_SOURCE) fixed in configure.
128		- Use tabulations as columns separator in intermediary files to avoid problems when a field of the log contains a space.
129		- Input log file type detection partly rewritten to clearly distinguish which type is processed where.
130		- Read the input log file from standard input if log file name is -.
131		- Use string pointers in getword instead of copying the strings over and over.
132		- Use LC_TIME to format some dates and times in the report according to the selected locale.
133		- Sarg.conf can list up to 255 access.log files.
134		- Downloaded files suffixes are matched against a sorted list and use a dichotomic search.
135		- Added getword_atoll to read a number directly from a file without an intermediary string storage.
136		- Use boolean to enable the options instead of string compares.
137		- Accept an absolute path for the language file in sarg.conf.
138		- Experimental: Can show the backtrace of the program when a getword loop is detected to help in locating the origin of the error.
139		- Protect the creation of the index against invalid directories.
140		- Only copy the files (not the subdirs) when creating the directory with the images to include in the reports.
141		- Directories deleted without using the rm system command.
142		- Index created using an internal sort algorithm instead of a system call.
143		- Fixed Debian bug #408577 (changed exclude_hosts to exclude subdomains and IPv4 subnets).
144		- Replace --enable-htmldir by --enable-sargphp to avoid confusion on the name (thanks to Peter Nixon).
145		- Installation of sarg-php can be disabled with --disable-sargphp.
146		- Fixed empty entries in squidGuard log when the URL doesn't start with protocol://.
147		- Fixed regressions in creation and reading of a sarg parsed log (thanks to Joao Alves).
148		- Does not report URLs consisting of only a host name ending with .com as a downloaded file.
149		- Mangle the $ and @ signs in user ID to make the resulting file name valid in shell commands.
150		- Fixed a regression in the default value of --enable-sargphp.
151		- Increase the maximum size of a line read from access.log and detect longer lines that were silently splitted in previous versions.
152
153Jan-06-2010 Version 2.2.6.1
154		- Remove unnecessary dependency on off_t.
155		- Configuration doesn't fail if rlim_t is not available.
156		- Test for the availability of -Werror=implicit-function-declaration and -Werror=format flags in gcc (thanks to Murilo Moreira de Oliveira and pjetko).
157		- Fix sort delimiter when reading useragent log (thanks to Maxim Britov).
158		- Fix user agent report font size and statistics on user agent.
159		- Test for the availability of -Werror=format-security in gcc (thanks to Maxim Britov).
160		- Test the existence of bzero with autoconf and don't redefine it (thanks to Maxim Britov).
161		- Remove warnings if libgd is not available.
162		- The date stored in sarg-date is now stored in a more machine readable form (thanks to rcastanheira for pointing this out).
163		- The date read from sarg-date was not properly parsed and would produce a wrongly sorted index across a year change (thanks to rcastanheira for pointing this out).
164		- my_mkdir changed to avoid the use of getword, be simpler and, maybe, work reliably on windows.
165		- Makefile supports DESTDIR for easy package creation (thanks to Erjo).
166		- Real time report honour the user_ip flag of the configuration file and the -l and -n passed on command line.
167		- Fix usage of -Werror and detection of fopen64 with old compilers not supporting -Werror=implicit-function-declaration.
168
169Oct-14-2009 Version 2.2.6
170		- Protection against buffer overflows in getword and friends and report the origin of the error instead of always blaming access.log.
171		- Patch #2224623 applied.
172		- Updated to autoconf 2.61.
173		- Detect external commands failures and print the exact command that produced the error. The offending file is kept for debugging if possible.
174		- The format of the date written in sarg-date is forced to prevent a failure if the locale is not en_US.
175		- Removed the duplicate file opening that resulted in a resource leak.
176		- Patch #1945235 applied.
177		- Patch #1918397 applied.
178		- Limit the content of the squidguard log file to the date of the day being processed.
179		- Removed fscanf that is prone to buffer overflows.
180		- Size of buffers increased.
181		- Protect ip2name against buffer overflows.
182		- Replace characters that are valid in URL but not in file names when building a file name from a URL.
183		- Patch #2657320 applied.
184		- Fix #else #if into #elif.
185		- Remove all the compilation warnings (inspired from patch #1771501).
186		- Fixed the real time report.
187		- Fixed the same bug as patch #1733337 but in a cleaner way.
188		- All the sprintf/fputs have been replaced by fprintf to avoid an intermediary buffer and possible buffer overflow.
189		- Moved all the functions declarations from conf.h to defs.h for consistency.
190		- Fixed bug #2089451.
191		- Fixed Debian bug #444845.
192		- Replaced the ifdef FOPEN64 by a single call to MY_FOPEN for code clarity.
193		- User IP/ID is searched only in the first column of the usertab file.
194		- Some of indentation fixes.
195		- Speed up by removing two unnecessary ip resolutions.
196		- Applied debian patches: sarg-polish.patch, sarg-turkish.patch
197		- Applied debian patch: opensuse_2_enlarge_report_buffers.patch
198		- Applied debian patch: opensuse_3_too_small_font_buffer.patch
199		- Applied debian patch: opensuse_4_enlarge_log_buffer.patch
200		- Applied and extended debian patch: opensuse_5_limit_sprintf.patch
201		- Function debuga format the output string itself, so there is no need to use sprintf.
202		- Applied debian patch: opensuse_7_year_assertion.patch
203		- Removed a few unnecessary strings copy.
204		- Embryo of documentation for the code with doxygen.
205		- Changed subs to replace the string in place and avoid allocating a memory that was freed on only one occasion.
206		- A few improvements on strings manipulations.
207		- Fixed debian bug #504749.
208		- Detect downloaded suffix bigger than 3 characters, don't match the cases and don't stop on a partial match.
209		- Fixed bug #2716729.
210		- Sanitized a little bit the generated HTML.
211		- Don't reject URL without directories.
212		- Use the correct format for off_t on amd64.
213		- Use the mechanism provided by configure to set the directories of the application instead of the custom variables.
214		- Fixed bug #1814212.
215		- Fixed bug #1847374.
216		- Partly applied advice of bug #1659784.
217		- Fixed bug #1740268.
218		- Applied suggestion of bug #2830643.
219		- Fixed bug #2216451.
220		- Fixed bug #2000178.
221		- Protect the reading of the configuration file against buffer overflows.
222		- Logo image height taken into account.
223		- Accept longer mail utility name.
224		- Fixed e-mail report (may also fix bug #2153024).
225		- Fixed total and percentages of topuser page.
226		- Applied Gentoo patch 10_all_sarg-2.2.5-enlarge-day-mon-buffers.patch.
227		- Applied Gentoo patch 12_all_sarg-2.2.5-enlarge-ntemp.patch.
228		- Open only once the denied.log and authfail.log when parsing more than one access.log.
229		- Use configurable paths for the files that used to reside in SYSCONFDIR.
230		- Add cmake configuration files.
231		- Compute the report date without resorting to the system command.
232		- Allow the use of spaces in the temporary directory.
233		- Fixed bug #2863485.
234		- Removed misplaced off_t as suggested in bug #2864425.
235		- Z files are uncompressed by zcat to avoid deleting the original log file.
236		- Compressed log files are uncompressed in /tmp/sarg to delete the file when the process completes.
237		- Fixed several memory leaks.
238
239Mar-03-2008	Version 2.2.5
240		- new fix to the script insertion vulnerability via user-agent
241		  report. javascript can still be executed via e.g. the "<BODY onload=function();>" scheme
242		     Thanks to Alin Rad Pop, Security Specialist, Secunia, Denmark
243
244Mar-02-2008	version 2.2.4
245		- security issues can be exploited to execute arbitrary code when sarg
246		  is used with malicious input files.
247		  The vulnerability within the processing of the useragent.log is rather
248		  critical, as this can be exploited by passing a long user agent string
249	          when browsing via a squid proxy. the manipulated GET request in the
250	          access log would not be accepted by squid, so that file has to be specially crafted.
251		     Thank you to L4teral l4teral@gmail.com
252
253		- French language fixed.
254		    Thanks to Nicod <smlpnicod@orange.fr>
255		- Fixed: Segfault in x86_64
256
257Jan-02-2007     version 2.2.3.1
258		- fixed -m option to show all the used tags
259		- date period invalid in download reports
260		- wrong results when userid contain '%20' character
261		- previous reports info wrong in index.html
262
263Dec/23/2006	Version 2.2.3
264		- gd graph font change from FreeSans.ttf to DejaVuSans.ttf
265		- minor fixes when only denied records in access.log file.
266		- ulimit tag changed. If you run sarg with a low privilege user,
267		  set to 'none' to disable ulimit.
268		     Thanks to Jorge Morgado <jorge@morgado.ch>
269		- Russian_UTF-8 language fixed by Igor Ageikin <iageikin@lipen.elektra.ru>
270		- realtime_unauthenticated_records tag changed to show by default.
271		- chmod 755 in sarg-php due to errors in rpmbuild.
272		     Thanks to Davide Madrisan <davide.madrisan@gmail.com>
273		- when the keyword "anonymous" is used in squidGuard.conf, Sarg does
274		  not find the log-files anymore.
275		     Thanks to Daniel Vogel <daniel_vogel@t-online.de>
276		- after reading the squidGuard configuration, the data read from the
277		  usertab file was corrupted.
278		     Thanks to Daniel Vogel <daniel_vogel@t-online.de>
279		- millisec values showed as bytes. Thanks to Carlos <ke09@terra.com.br>
280		- with squidGuard, you can log groups in only one log file.
281		  We must parse each log files only one time.
282		     Thanks to Christophe BADINA <christophe.badina@ch-moulins-yzeure.fr>
283		- error message(removetmp) Cannot open /tmp/sarg_tmp/../general
284		  when sending report by email. Thanks to Peter Volkov <pva@gentoo.org>
285		- incorrect off_t size in printf. In FreeBSD off_t is 64bit long long,
286		  but sarg always use %d to display off_t in log processing. This cause garbage
287		  while reading log files on a freebsd, and possible crash.
288		     Thanks to Alex Samorukov <samm@os2.kiev.ua>
289		- squid24 on/off tag added in sarg.conf to implement compatibility if using
290		  squid <= 2.4 and using squid common logs.
291		     Thanks to Valter Dal Bo <dalbo@tesco.it>
292		- exclude_hosts and some code errors fixed by
293		     Alexander Kozlov <avk@post.eao.ru>. Many thanks.
294		- temporary file names changed to sarg-... to avoid conflicts
295		  with usernames. Thanks to Ukrainian Elephant <superlamer@users.sourceforge.net>
296		- SARG support Japanese wordset but not support charset.
297		     submitted by anonymous at sourceforge.net  Many thanks.
298		- support for utf-8 character set added by Peter Warasin
299		     <peter-endian@users.sourceforge.net>. Many thanks.
300	        - if all the data is at the hour each day, totaliza_day() treats it all as being
301		  on the last day. This is observed for users which only download via a cron job
302		  at the same time each day. Now the date and time will be
303		  checked to see if changed.
304		     Thanks to Ian Dall <iandall@users.sourceforge.net>
305		- greport_day() doesn't add the volume for the first hour of each day to the total.
306		     Thanks to Ian Dall <iandall@users.sourceforge.net>
307		- Russian_koi8 and Russian_windows1251 languages updated by
308		  Stas Degteff <stas.grumbler@gmail.com>. Many thanks
309		- realtime reporting is sorted by URL, and not by Date/Time.
310		    Thanks to Puce-Xcit <puce-xcit@users.sourceforge.net>
311
312Aug/29/2006	Version 2.2.2
313		- malloc test implemented to avoid high-memory consuming.
314			Thanks to Rodrigo Rubira Branco <rodrigo@kernelhacking.com>
315		- Czech UTF8 language added by Josef Karliak <karliak@ajetaci.cz>
316		- fixed: parsed mismatch in realtime_access_log_lines and
317			access_log_lines tags.
318			Thanks to Kuznetsov Andrey <pm_kan@mail.ru>
319		- changed: realtime report sort changed by date/time
320			Thanks to Leonardo Buonsanti <leonardo.buonsanti@gmail.com>
321		- GD minor fixes added.
322		- bug fixed. *** buffer overflow detected ***: sarg terminated
323		  in Fedora Core 5 when using -D FORTIFY_SOURCE in gcc or in kernel.
324
325May/19/2006	Version 2.2.1
326		- iconv problems fixed in Freebsd and Slackware.
327			Thanks to Grigory Trenin <gtrenin@gmail.com>.
328		- new word added to languages: Topuser
329		- missing fclose fp-in in css.c
330			Thanks to Renato Botelho <rbgarga@gmail.com>.
331		- index.c fixed. Missing -r in reverse sort.
332			Thanks to Fernando Lemes da Silva <fernando@koho.com.br>
333		- wrong values in columns in-cache and out-cache.
334			Thanks to Hugo P S Costa <hpcosta@nutron.com.br>
335
336May/17/2006	Version 2.2
337		- sarg ported to 64 bits.
338		 	Thanks to Antonio F. Zago <zagolinux@uol.com.br>
339			to share your Fedora Core 5 64 bits with me.
340		- fixed conflict types for 'saverecs2' in .configure
341		- fixed no index.html when lastlog tag is greater then 0,
342		  caused by some debug messages.
343		- removed some development debug message
344		- user_limit_block script added to block users when limit exceeded
345		- fixed wrong sort in index.html
346		- removed '+' argument to sort utility.
347		  	Thanks to Julio Cesar Covolato <julio@psi.com.br>
348		- fixed "file too long" messages when using long_url
349			Thanks to Fabio Lo Votrico <fabio@link.it>
350		- fixes and improvements from Oleg <xsov@mail.ru> - Tanks.
351		  . fprintf faster than sprintf+fputs (fixed in some places);
352		  . strcpy+strcat is faster than sprintf (fixed in some places);
353		  . unused variables removed;
354		  . fixed headers look and feel (<th class="header3">);
355		  . fixed word 'BYTES' localization for datetime user report;
356		  . fixed corrupted top header on index, denied, download and tt-reports;
357		  . fixed "No" table header in topsites;
358		  . fixed user report table look;
359		  . fixed floating point exception on long url (added checks
360		    for division by zero);
361		  . fixed incorrect long url view;
362		  . fixed too wide table entries in user report by adding url_limit
363		    internal parameter in html.c (default 40);
364		  . fixed charset.c file (was in MS-DOS text format);
365		  . also included all previous fixes by other people (from
366	            datafile.patch and lastlog.patch files).
367
368Nov/29/2005	version 2.1
369		- index_tree tag added.
370			Look at TAG: index_tree in sarg.conf file
371			default is file - old format.
372		- realtime report added. sarg -r option
373			Look at these tags ion sarg.conf file:
374				TAG: realtime_refresh_time num sec
375				TAG: realtime_access_log_lines num
376				TAG: realtime_types: GET,PUT,CONNECT,ICP_QUERY,POST
377				TAG: realtime_unauthenticated_records: ignore|show
378		- garbage in topuser report with uninitialized variable.
379			Thanks to Craig Brockmeier <craig@ppco.com>
380		- memory leaks caused by a wrong variable size
381			Fixed by Klaus Singvogel <kssingvo@suse.de>. Thanks.
382		- ignoring users with '.' in password file.
383			Thanks to Emerson Valdir Pellis <webmaster@marisol.com.br>
384		- error with "resolve_ip" with "user_authentication yes"
385			Fixed by Grigory Trenin <gtrenin@gmail.com>. Thanks.
386		- long url causing fault.
387			Thanks to Vassily Andin <vasya@avitalight.com>
388		- hanging on a log file containing space.
389			Thanks to Fabio Lo Votrico <fabio@link.it>
390		- bug fixed in squidguard report module
391		- squidguard_ignore_date on|off tag added to sarg.conf file
392			You can ignore the squidguard log record date if outside of
393			date range in squid access.log file.
394		- alternate squidguard log added using -L option on sarg command line.
395			Thanks to Dave Karlson <dkarlson@r9esd.k12.or.us>
396		- fixed malloc without free.
397		- datafile-url ip|name added to sarg.conf file - saves ip address or name
398		  in url when using datafile tag.  Thanks to Calvin Muller <calvin@siryn.co.za>
399		- wrong link point in Generated by sarg-2..
400			Thanks to Markus Hoffmann <ipcop@mh-lantech.de>
401		- Russian_UTF-8 language added by Alex Deiter <tiamat@komi.mts.ru>
402
403Aug/04/2005	version 2.0.9
404		- dansguardian_report_limit missing in sarg.conf file.
405		- ntlm domain+user format added.
406		- index date sort fixed by Olivier JAVAUX. Thanks
407		- Improve broken record detection
408			Thanks to Artem Korneev <akorneev@intelsysus.com>
409		- sort open failed causing an empty topuser report
410		- sarg losslessly size optimized images
411			Thanks to Tonda M��ek <tonda.misek@post.cz> and Luigi Gangitano.
412		- sarg calling sort without quoting filenames
413			Thanks to Luigi Gangitano.
414		- download_report_limit tag added.
415			Thanks to Leonardo Rodrigues <leonardo@solutti.com.br>
416		- logo css class defined but never used.
417			Thanks to Roger Favero <favero@sparkenergy.it>
418
419May/29/2005	version 2.0.8
420		- verdana.ttf font removed to avoid patent infringement issues.
421		  Now sarg uses a GPL FreeSans font from http://savannah.gnu.org
422		- ISA report with wrong date in date/time report.
423			Thanks to Richard Berndt
424		- connect records ignored when using emulate_http_log on in squid.conf file.
425			Thanks to Dusan Woletz
426		- bug that prevents the correct usage of switch -d <date1-date2> when using
427			an "emulate_httpd_log on" logfile and some performance improvements
428			added.
429			Thanks to Filippo Grassilli
430		- Spanish language fixed by Jos� Luis Hern�ndez L�pez. Thanks.
431		- url variable size changed to accommodate big urls with coded symbols and some
432		  minor changes in util.c file.
433			Thanks to Oleg <xsov@mail.ru>
434		- download suffixes improved by Oleg <xsov@mail.ru>. Thanks.
435			Now sarg uses these suffixes:
436			   7z,ace,arj,avi,bat,bin,bz2,bzip,cab,com,cpio,dll,doc,dot,exe,gz,iso,
437			   lha,lzh,mdb,mov,mp3,mpeg,mpg,mso,nrg,ogg,ppt,rar,rtf,shs,src,sys,tar,
438			   tgz,vcd,vob,wma,wmv,zip
439
440May/02/2005	version 2.0.7
441		- DansGuardian report added.
442			Thanks to Adolfas Kupliauskas for the access.log
443		- Slovak language added by Dusan Woletz
444			Thank you
445		- wrong usertab user on topuser report.
446			Thanks to Marcos Favoretto
447		- ntlm_user_format added to sarg.conf. Now you can choose the following formats
448		  for the username on reports: user|domainname+user
449			Suggested by Roger Favero
450		- exclude_users ignored in some situations.
451		- Fixes by Sapon Oleg from Russia:
452		   . there are two equal lines about Evren Yurtesen in CONTRIBUTORS file.
453		   . Internationalization of SARG user graph added, using iconv function, which
454		     is presented only in Linux, so I add required #ifdef and other stuff to clean
455		     compile code on other platforms.
456		   . Fixed two issues:
457			- '?' symbol problems for apache and other cgi-supporting web server which
458			  doesn't support '?' symbol in links (all of them interpret this like
459			  parameter to cgi script);
460			- some good optimization to all three similar cicles in these files by
461			  reducing false checks in 'if ...' strings.
462		   . Fixes segfault, produced by improper use of strncpy functions, look - strncpy
463		     doesn't copy leading '\0' symbol!
464		   . Just localization support for repday report.
465		   . Support usertab IP->USERNAME change in siteuser report.
466		   . Just proper Russian koi8 localization.
467
468Apr/22/2005	version 2.0.6
469		- Greek language by Antonis Maglaras <vegos@magla.gr>
470			Thank you.
471		- time period added to -t option. Now you can use -t HH-HH, HH:MM-HH:MM
472		- support to isa proxy 2004 log added.
473			Thanks to William da Rocha Lima <wrochal@linuxit.com.br>
474		- French language fixed by Alexey Znamerovskiy <alexz@everys.com>
475			Thanks
476		- internal LC_ALL=C removed to avoid errors on Solaris.
477			Thanks to Hraska, Frantisek <frantisek.hraska@hupro.sk>
478		- non authenticated records removed from Topuser report.
479			Thanks to Brian <brian@reginachristianschool.org>
480		- Compilation error on FreeBSD > 5 - log.c:645: error: `RLIMIT_OFILE' undeclared
481		- Sarg abbreviation values improved.
482
483Mar/21/2005	version 2.0.5
484		- fixed: some changes to avoid segmentation fault.
485		- fixed: some changes to avoid compilation errors on freeBSD.
486		- fixed: exclude_hosts not excluding correctly.
487
488Feb/17/2005	version 2.0.4
489		- exclude hosts not excluding correctly.
490			Thanks to Oleg
491		- download report showing jpeg files.
492		- support to Microsoft isa proxy log files added.
493			Thanks to Trankov Vladislav <vtrankov@kb-obibank.ru>
494		- fixed: error when using relative paths in -o and -w options. Just absolute paths
495			can be used now.
496			Thanks to Andreas Grosse <andi@majestyk.de>
497		- fixed: segfault fix in vrfydir() in util.c
498			 Prevent buffer overflow in subs(); replace one constant with sizeof() in my_lltoa().
499			 vrfydir(): fix segfault if sub-directory "images" is not exists
500			 function builddia() don't check the parameters. Result: segmentation fault in some cases.
501			Thanks to Stas Degteff stas_degteff@users.sourceforge.net for the fixes.
502		- fixed: wrong date period in squidguard_log when using European date format.
503			Thanks to Guenther Mair <gunnyst@users.sourceforge.net>
504		- ulimit tag added on sarg.conf to avoid "Too many open files" error.
505			Thanks to Paulo Pires <paulo.pires@vodafone.pt>
506
507
508Feb/02/2005	version 2.0.3
509		- squidguard parse logs method changed.
510			Thanks to Joao Mendes <jmendes@credibom.pt>
511			Thanks to Guenther Mair <gunnyst@users.sourceforge.net>
512		- wrong results in -v option.
513		- fixed: error when using -u (include user)
514			Thanks to Bochkarev Vladimi <bochkarev@expocentr.ru>
515		- export LC_ALL=C will be issued before sort to avoid high cpu usage
516
517Nov/22/2004:    version 2.0.2
518		- grepday with invalid font path.
519			Thanks to Marcelo Ricardo Leitner <mrl@conectiva.com.br>
520		- -v option added to display Sarg version on console
521		- Segmentation fault caused by an unclosed file.
522			Thanks to Pustovalov Leonid
523		- SquidGuard log formats added.
524			Thanks to Kolotov Alexandr
525		- time field added to topsites report
526			Thanks to Miles Roper <mroper@westcoastdhb.org.nz>
527		- fixtime function with wrong definition, changed to long long
528			Thanks to Valery from Russia
529		- Solaris 9 compiling error: error: conflicting types for 'my_mkdir'
530			Thanks to Brad Larden <Brad.Larden@alphawest.com.au>
531		- segfaults if the denied report is disabled in sarg.conf.
532			Thanks to Filippo Carletti <filippo.carletti@nethesis.it>
533		- reading performance improved by Francesco Perrillo <fperillo@totalfax.it>
534			Thanks
535		- Russian sarg-php translation added.
536			Thanks to Michael Stepanenko <mistic@ecolines.ru>
537
538
539Oct/04/2004:    version 2.0.1
540		- configure error with no gd installed.
541		- graph with no text when using --enable-sysconfdir
542		- graph day incorrect when using dd/mm/yy date format
543		- show_sarg_logo yes|no added
544		- site_user_time_date with wrong patch.
545			Thanks to Ricardo R. Hoffmann <hoffmann@uninet.com.br>
546
547
548Sep/29/2004: -  version 2.0
549			- Internal/External css implemented
550			- User authentication access (htaccess) implemented
551			- large file support added
552			- Report limits implemented
553			- Download report implemented
554			- Sarg logo by Osamu Matsuzaki <matsu_o@robata.org> added.
555			- Internal mkdir added to easy port to various platform.
556			- long url now show only accessed site and module name.
557			- now you can add a user report url to a flat file to be blocked
558		          by some Squid acl.
559				Request by Francesco Collini <collini@colliniconsulting.it>
560			- remove temporary files, if already exist, to avoid conflicts with a
561			  previous sarg process..
562				Thanks to Renato Leon <rl_sita@hotmail.com>
563			- squidGuard improved
564				- now only records with the same period from access.log
565				  will be in squidGuard report.
566				- squidGuard limit report
567				- now you can save some urls in squidGuard db using
568				  sarg-squidguard PHP utility.
569
570		bug fixed: fault caused by rewinddir after closedir.
571			Thanks to Lucas Bocchi <challado@ibocchi.com.br>
572			   and to Freek
573                Fixed:  - missing </body> tags in all HTML pages
574                        - missing </html> tag in some HTML pages
575                        - missing DOCTYPE in all HTML pages
576                        - grammar in man page
577                        - URL Links to SourceForge http://sarg.sourceforge.net/
578                Added:  - Included more detailed information in man the page
579                           Thanks to Billy Newsom of U.S.
580                To Do:  - There are still major validation problems in the HTML generated
581
582
583Apr/25/2003: -  fixed:  - link error to denied site in squidGuard report
584                        - resolve name error in squidGuard report
585                        - some fixes to HPUX. Thanks to Miles Roper <mroper@westcoastdhb.org.nz>
586                        - index_sort_order tag don't work correctly.
587                        - too many open files fixed. Thanks to Francesco Perrillo <fperillo@totalfax.it>
588                        - Ukrainian_windows1251 included in sarg.conf file
589                        - exclude_string don�t work correctly. Thanks to Modric Kristijan
590					<Kristijan.Modric@pliva.hr>
591
592Mar/17/2003: -  Release 1.4
593		Added:  Now you can choose the fields that will be in User Reports.
594			Look at user_report_fields tag in sarg.conf file
595			Implementation requested by Daniel T. Joye <daniel@dragontail.com>
596
597                Added: 	Now sarg saves the processed log in a sarg format after parsing
598			the squid log file. This allow futures sarg reprocess and data
599			will be smaller than Squid the log files
600                        Look at parsed_output_log directory and
601			        parsed_output_log_compress tags in sarg.conf file
602			Implementation requested by Joe Cooper <joe@swelltech.com>.
603				Many thanks for the donation.
604
605                Added:  Now sarg can display the report values in abbreviation format.
606			Look at displayed_values in sarg.conf
607
608		Added:  Ukrainian_windows1251 language by Roman Vynar <rvynar@icqmail.com>
609			Thank you.
610
611		Added:  Catalan language by Andreu Sanchez <tanis@lleida.com>
612			Thank you.
613
614Nov/16/2002: -  Fixed: squidGuard report fail with non authenticated users.
615			Thanks to Dan Ratzlaff <norb@norbysoft.com>
616                Fixed: Turkish language by Evren Yurtesen
617               		<yurtesen@ispro.net.tr>. Thanks
618                Fixed: English language by Luigi Gangitano
619		       	<gangitano@lugroma3.org>. Thanks
620                Fixed: "CONNECT" average values are incorrectly calculated.
621                        Arvids <arvids@vendomar.lv>. Thanks
622
623Oct/15/2002: -  Added: sarg man page created by Luigi Gangitano
624			<gangitano@lugroma3.org>
625	        Added: Reading statistics, show_read_statistics tag
626                Added: Index sort order. See index_sort_order tag
627		Added: squidGuard report - squidguard_log_path tag
628		Added: show_sarg_info on report bottom optional - show_sarg_info tag
629		Changed: gzipped file will be decompressed using zcat
630		         bzipped file will be decompressed using bzcat
631                Changed: new sort routine added.
632		Changed: strsep changed to getnumlist function by Robert Tiismus
633
634Jun/02/2002: -  Added: save the results in a flat file to use to populate some
635    		       database. Look at these tags in sarg.conf file:
636                         TAG: datafile file
637	                 TAG: datafile_delimiter ";"
638                         TAG: datafile_fields all
639		Added: logic to detect a broken record in access.log file
640		       and ignore it.
641		Added: now you can select the records to be processed by
642		       week and/or time using these tags in sarg.conf file:
643			 TAG: weekdays
644			 TAG: hours
645	               Thanks to Robert Tiismus from Institute of Physics,
646		              University of Tartu, Estonia.
647			      <robert@fi.tartu.ee>, and for the repday.c
648			      improvements.
649
650Apr/03/2002: -  bug fixed: cannot create temporary file when url contain '/'
651                   and using long_url
652		   Thanks to Enrico Sorge <enrico.sorge@activevr.it>
653
654Dez/10/2001: -  Added: sarg now shows statistics when reading the log file
655		       if running with -x option
656
657Dez/05/2001: -  bug fixed: - loop process when using "tmp" chars in usernames
658		   Thanks to Jasper vd Heijden <extern@midkemia.nl>
659		new tag added: show_successful_message yes
660		   Show "Successful report generated on dir" message at end of process.
661			Requested by: Wendell Schubert <wendell@webeworld.com>
662				      Mauricio Felizardo dos Santos <mfelizardo@ansett.com.br>
663		bug fixed: core dump when removing auth_failures report from
664			   report_type tag.
665	           Thanks to Leonardo Rodrigues <coelho@persogo.com.br>
666		bug fixed: core dump with a big number of users.
667		   Thanks to Zverev, Alexandr V. <AVZverev@rtc.tnk.ru>
668		new tags added: topuser_fields
669                                topuser_num
670		   Now you can choose which fields must be in Topuser report and how many users.
671		   Requested by Hidde Beumer <Hidde.Beumer@cmg.nl>
672		bug fixed: auth_failures report missing
673		   Thanks to Clary Harridge <clary@csee.uq.edu.au>
674		Polish language added by Wszebor Boksa <Wszebor_Boksa@koncept.pl>
675	           Thank you.
676		Romanian language added by Adi Cretu <adi@usv.ro>
677	           Thank you.
678
679Jul/03/2001: -  new report added: site/user/date/time
680                  Now report_type tag has the following default setup:
681		    report_type topsites sites_users date_time denied auth_failures site_user_date_time
682             -  bug fixed - error when using squid-ntlm authenticator (domain\user)
683				Thanks to Jakob Curdes <jc@info-systems.de>
684	                  - ignoring changes in report_type tag
685			  - Site&Users report with users shifted down one row.
686				Thanks to Jason Urkow <jaque@telusplanet.net>
687                         - some temporary files not removed.
688                         - site/user/date/time report without </table> and </html>
689
690May/30/2001: - bug fixed: - user table garbage
691			  - chmod 644 removed from makefile
692			  - ignoring first user in usertable
693			  - ignoring users names with dots (".")
694			  	Thanks to Daniel Malmgren <daniel@leeloo.lund.se>
695			  - same values for connect and bytes fields in reports on Solaris 8
696			  	Thanks to Craig Brockmeier <craig@ppco.com>
697	       New tag added: user_invalid_char "&/"
698			  To avoid core dumps, records that contain invalid characters
699			  in userid will be ignored by Sarg.
700	       New tag added: privacy yes|no
701	                      privacy_string "***.***.***.***"
702	                      privacy_string_color blue
703	       		  In some countries the sysadm cannot see the visited sites by a restrictive law.
704	       	          Using privacy yes the visited url will be changed by privacy_string and
705			  the link will be removed from reports.
706			     Requested by Diaolin <diaolin@diaolin.com> (Natali Giuliano)
707               New tag added: include_users "user1:user2:...:usern"
708	                  Reports will be generated only for listed users.
709	       		     exclude_string "string1:string2:...:stringn"
710	       		  Records from access.log file that contain one of listed strings will be ignored.
711			     Requested by Michael Koptyaev <mk@aney.ru>
712
713
714Apr/02/2001: - implementation of --enable-bindir and --enable-sysconfdir in configure script.
715			Thanks to Sergei Dushenkov <dusha@dnttm.ru>
716	     - bug fixed: getword excessive long string detection function fixed.
717			Thanks to Junghausz Norbert <nigga@nigga.hu>
718	     - bug fixed: wrong charset for windows-1251 and koi8 Russian languages.
719			Thanks to Alexey Zhigayev <murphy@fio.samara.ru>
720	     - bug fixed: - Help page (-h) is empty because at start (log.c) program doesn't
721	                    load definitions to text[][] array.
722	                  - Definitions for Russian language doesn't have last 2 lines.
723                          - Definitions of Charset field for Russian language is not so correct.
724                            Better is 'windows-1251' or 'koi8-r'
725			  - I think in topuser.c the definition of wheader[] is too short for words
726			    on some languages
727			  - Initialization and use of variables TopuserSortField and
728                            TopuserSortOrder is mismatch
729			Thanks to Alex Voronin <al_vg@mail.ru>
730             - bug fixed: core dump with big user table.
731			Thanks to Jorge Cuellar Martinez <jorge.cuellar@sat.gob.mx>
732	     - Latvian languages by Juris Valdovskis <juris@auce.lv>
733			Thank you
734
735Mar/22/2001: - Now the user can choose the language using the language TAG in /usr/local/sarg/sarg.conf file.
736               There is no more --enable-language in configure script.
737             - New report added: Authentication Failures
738			Requested by Sergei Dushenkov <dusha@dnttm.ru>
739             - NONE/400 (bad request) is excluded by default (/usr/local/sarg/exclude_codes)
740             - Now sarg support big numbers (64 bits) in any platform.
741             - Date/Time report now use bytes or elapsed time as specified in date_time_by tag in sarg.conf
742               		Requested by Inters <inters@mailbox.riga.lv>
743	     - bug fixed: sites&users report sorted on the User field rather than the Site field
744	       		Thanks to Simon Bryan <sbryan@olmc.nsw.edu.au>
745             - sites&users report was changed.
746             - Russian_windows125 language fixed.
747			Thanks to Dima I. Allaverdov <allav@ur.rags.ru>  (rasa)
748             - bug fixed: getconf was catching a wrong value in replace_index tag
749			Thanks to vrush_22@softhome.net
750             - bug fixed: per_user_limit file with duplicate users.
751             - Russian languages fixed by Nikolai V. Ivanyushin <koko@infocenter.bryansk.ru>. Thank you.
752             - charset TAG added to sarg.conf file. The following charsets are available:
753			Latin1 (West European), Latin2 (East European), Latin3 (South European)
754			Latin4 (North European), Cyrillic, Arabic, Greek, Hebrew
755			Latin5 (Turkish), Latin6 (Nordic)
756             	    Requested by Nikolai V. Ivanyushin <koko@infocenter.bryansk.ru>
757             - configure now accept only two options:
758			--enable-bindir     - where sarg binary will be saved
759			--enable-sysconfdir - where the configuration directory is
760
761Mar/09/2001: Sqmgrlog has gained a new name: SARG - Squid Analysis Report Generator.
762             Many people have asked me about why sqmgrlog. I really don�t know.
763             No inspiration I think.
764             SARG was suggested by an user from Philippines, but, I lost his email
765             and don�t remember his name.
766
767             Thank you anyway.
768
769
770
771sqmgrlog ChangeLog
772
773Feb/06/2001: Version 3.0 released:
774             - Denied report added.
775			Request by Jason Staudenmayer <JasonS@NJAQUARIUM.ORG>
776	     - User table added. You can override your userid or IP Address with
777	       a real user name.
778			TAG usertab added to sqmgrlog.conf
779             - Now you can have the long url in reports
780			TAG long_url added to sqmgrlog.conf
781             - Now you can choose the report types
782			TAG report_type added to sqmgrlog.conf
783	     - sqmgrlog.conf file now will be in 644 mod.
784			Request by Michail Vidiassov <master@iaas.msu.ru>
785	     - sqmgrlog coredumps if there is a very long line in the config file.
786			Thank you to Michail Vidiassov <master@iaas.msu.ru>
787             - Url parser changed to get connect records from a better way
788			Thanks to Sergey Erokhin <esl@vechnost.com>
789	     - Michail Vidiassov <master@iaas.msu.ru> made gcc -Wall ... happy on FreeBSD 4.1
790			Thank you
791             - Russian_Koi8 language fixed by
792			Andrew Okhmat <andy@crgu.com>. Thank you.
793			Maks Nefedchenko <maks@viaduk.net>. Thank you.
794             - Russian and Bulgarian language fixed by
795			Nikolai V. Ivanyushin <koko@infocenter.bryansk.ru>
796
797
798
799Nov/09/2000: Two patches form Brad Guillory <proxyadm@baileylink.net> added:
800              1. max-elapsed tag added to sqmgrlog.conf file:
801                 # TAG: max_elapsed milliseconds
802	         #      If elapsed time is recorded in log is greater than max_elapsed use 0 for elapsed time.
803  	         #      Use 0 for no checking
804                 #
805                 #max_elapsed 0
806                 # 8 Hours
807                 max_elapsed 28800000
808              2. day report (the one that looks like a calendar) changed:
809	         Every minute that a request is logged your time is incremented by the smaller
810                 of 1 minute or the total time for the requests.
811
812                 Thank you Brad. Brad Guillory is the newest sqmgrlog contributor.
813
814              Changed: sort now compare according to arithmetic value.
815
816Jul/11/2000: Dutch language fixed by Pieter Kooistra <pkooistra@hr.nl>
817       		Thank you.
818             Changed: Russian_koi8 changed to Russian_Koi8.
819		Thank you to Eugene AKA Kevin Kevin <kevin@id.ru>
820             Slightly changed Czech language
821             Added: TAG: replace_index
822                Replace "index.html" in the main index file with this string
823                Vladimir Smelhaus <smelhaus@atlas.cz>
824             Bug fixed: For some reason, Squid occasionally logs a blank line. Running sqmgrlog
825		against a log containing a blank line causes sqmgrlog to take 99+% CPU
826		Thanks to Giese, Bill <bill@gieses.com>
827	     Added: now every squid code that contain the MISS word will be counted as out cache.
828         	Thanks to Kostya Panov <twin@beep.ru>
829
830Jun/09/2000: Bug fixed: abnormal end if userid contain ';'
831		Thanks to Victor Feoktistov <feoktist@triniti.ru>
832             Japanese language fixed by
833                Akira Kitamura <click@anet.ne.jp> Takamatsu-City Kagawa Japan
834             Bug fixed: Wrong date when setting date_format u in sqmgrlog.conf file
835                Thanks to Dale Perkel <dale@think.co.za, Nuno Almeida <nalm@vanguarda.com>,
836		          Marcio Rodrigo Bordignon <mrbordignon@uol.com.br>
837
838Mar/15/2000: Japanese language added by
839		Akira Kitamura <click@anet.ne.jp> Takamatsu-City Kagawa Japan
840                Thank you.
841             Serbian language added by
842		Radovan Drobnjakovic <admin.rts@rts.co.yu>
843                Thank you.
844             Bug fixed: wrong sort field when lower case used in
845		sort tags.
846		Thanks to Scott Larsen <slarsen@cascorp.com>
847                  and to WOLETZ, Dusan <woletz@globtel.sk>
848             Abuse report removed.
849             Changed: report1_sort_field TAG in sqmgrlog.conf
850			changed to topuser_sort_field
851             Changed: report2_sort_field TAG in sqmgrlog.conf
852			changed to user_sort_field
853             Added: topsites sort field options added:
854               # TAG: topsites_sort_order CONNECT|BYTES A|D
855               #      Sort for topsites report, where A=Ascendant, D=Descendant
856               #
857               #topsite_sort_oder CONNECT D
858             Implementation requested by
859		 Michael G. Koch <Michael.G.Koch@globalknowledge.de>
860
861Feb/26/2000: Bulgarian-windows1251 language added by
862	      Ivan Minchev <vanko@uni-svishtov.bg>.
863               Thank you.
864             French language updated by
865	      Olivier Rousselot <olivier.rousselot@ssti.fr>
866               Thank you.
867
868Feb/15/2000: SmarfFilter report added.
869               Implementation requested by Andrew Bradshaw <andyb@excite.co.uk>
870             Bug fixed: files created with 09Feb2000-09022000 instead 09Feb2000-09Feb2000
871               Thanks to Andy Parfenov <andy@nursat.net>
872             Changed: ignore records with HTTP/0.0 string.
873               Implementation requested by Bernd Kossmann <bko@shd.de>
874             Changed: some code added to ignore broken records in access.log file
875             Bug fixed: removing old file with lastlog dont work.
876               Thanks to Evren Yurtesen <yurtesen@ispro.net.tr>
877
878Jan/20/2000: Indonesian language added by V Gatut Harijoso  <gatut@student.unpar.ac.id>
879	       Thank you.
880             Fixed: change in conf.h to compile on OpenBSD 2.6 system.
881	       Thanks to Kenneth Ingham <ingham@i-pi.com>
882             Fixed: small bug, which fills the "periodo" with
883		    "01Jan2000-20000101" instead of "01Jan2000-01Jan2000".
884               Thanks to Schlosser, Carsten ECOFIS <c.schlosser@ecofis.de>
885             Fixed: After calling system function malloc, variable excludecode
886		    have some symbols inside (excludecode wasn't zeroed).
887               Thanks to Andrew Katkov <askat@crimea.net>
888
889Dec/29/1999: Czech language added by Milos Prudek <prudek@nembv.cz>
890               Thank you.
891             Russian-windows1251 language added by Dima I. Allaverdov <allav@ur.rags.ru>
892               Thank you.
893             Changed: Russian language changed to Russian_koi8 language.
894             Bug fixed: Sites&Users report dont resolve ip address.
895               Thanks to Pavel Jezek <Pavel.Jezek@i.cz>
896
897Nov/29/1999: Bug fixed: DENIED word translated to another language never printed.
898               Thanks to Rodolphe SIBERT <rsi@kyxar.fr>
899             New report added: Sites & Users
900               Implementation requested by Rodolphe SIBERT <rsi@kyxar.fr>
901             Added: The date format now also has the option "w" for week.
902                    The report is then 1999.47-1999.47 for instance.
903               Implemented by Seth Mos <stimpy@stimpy.multiweb.nl>, thank you for the patch.
904             Dutch language added by Seth Mos <stimpy@stimpy.multiweb.nl>
905               Thank you.
906             Added: new tag on sqmgrlog.conf, named user_ip, for setting a system wire -p, use ip address
907                    instead userid.
908               Implemented by Carlo Marcelo Arenas Belon <carenas@chasqui.lared.net.pe>
909               Thank you for the patch.
910             Added: new tag on sqmgrlog.conf, exclude_codes pointing to a file with codes to be
911                    ignored by sqmgrlog. Eg.: NONE/400
912               Implementation asked by Doug Burks <DBurks@Augserv.com>
913
914Sep/28/1999: Bug fixed: -split and -convert dont work with multiples -l options.
915               Thanks to G. Kelana Sudibyo" <kelana@inn.bppt.go.id>
916             Bug fixed: Bytes and Average corrupted in index.html after second execution.
917               Thanks to Rob Glasser <orso@onelist.com>
918
919Sep/13/1999: Bug fixed: get wrong access.log file when using access_log in sqmgrlog.conf file.
920               Thanks to Michael G. Koch <Michael.G.Koch@globalknowledge.de>
921
922Sep/10/1999: Spanish language added by Leonardo A. D'Angelo <ldangelo@san-cayetano.com>
923               Thank you.
924             New report added: topsites. This report show the top n sites accessed.
925                    You can set the top num sites in topuser_num tag in sqmgrlog.conf file.
926             Bug fixed: wrong userid when using Samba authenticator.
927	       Thanks to klaubert@bcb.gov.br (Klaubert Herr da Silveira)
928	     Changed: -v option removed. No more support for Squid-1 log format.
929               Thanks to Nik Oxley <nik.oxley@iholland.co.uk>
930
931Aug/18/1999: New fields added to sqmgrlog.conf:
932               - lastlog n
933                   With lastlog you can tell to sqmgrlog to remove old reports files.
934                   Usage: lastlog 0  - no remove nothing
935                          lastlog 10 - maintain only the last 10 reports
936                   Implementation requested by Evren Yurtesen <yurtesen@ispro.net.tr>
937                      Thank you for your help.
938               - remove_temp_files yes|no
939                   Remove temporary files: geral, usuarios, top, periodo from root report directory.
940                   Implementation requested by Fred Pacquier <fredp@dial.oleane.com>
941               - index yes|no|only
942                   Usage: index yes  - will generate the main index.html in reports
943                          index no   - dont generate the main index.html in reports
944                          index only - generate only the main index.html in reports
945                   Implementation asked by Fred Pacquier <fredp@dial.oleane.com>
946               - overwrite_report yes|no
947                   If yes and the report already exist for that date, the reports will be overwritten.
948                   If no and the report already exist, that report will be renamed to filename.n, filename.n+1
949                     Implementation requested by Eugeny Kuzakov <CoreDumped@CoreDumped.null.ru>
950               - records_without_userid ignore|ip|everybody
951                    What can I do with records without user id (no authentication) in access.log file ?
952                      ignore - This record will be ignored.
953                          ip - Use ip address instead. (default)
954                   everybody - Use "everybody" instead.
955               - use_comma
956                   Use comma instead point in reports.
957                     Eg.: use_comma yes => 23,450,110
958                          use_comma no  => 23.450.110
959               - mail_utility mail|mailx
960                   Which mail command must I use to send reports ?
961
962             Added: now every squid code that contain the MISS word will be counted as out cache.
963                Implementation requested by Eugeny Kuzakov <CoreDumped@CoreDumped.null.ru>
964                   Thank you for your help and for share your FreeBSD with me.
965             Changed: the field url was changed to 8192 bytes to support big urls.
966                Thanks to Eugeny Kuzakov <CoreDumped@CoreDumped.null.ru>
967             Changed: the header "TIME SPENT" changed to "USED TIME" in topuser report.
968             Changed: no more nouser will be in reports but IP address instead.
969             Changed: no more squid 1 log format supported.
970             Bug fixed: wrong reports when using common log format (emulate_http on).
971                Thanks to Patrick LIN <patrickl@cst.ca>
972
973Aug/06/1999: French language added by Fred Pacquier <fredp@dial.oleane.com>
974                Thank you
975             Bug fixed: negative percentage in IN-CACHE-OUT.
976                Thanks to brad@baileylink.net
977             Bug fixed: wrong directory name created when using -g e and -d
978                Thanks to Fred Pacquier <fredp@dial.oleane.com>
979             Changed: atol use to get total bytes changed to atoll.
980                Thanks to brad@baileylink.net for the patch.
981             Changed: now use ',' as separator instead '.' when using US date (-g u)
982                Implementations requested by brad@baileylink.net
983             Changed: added -convert and -split to usage help (-h)
984                      new messages added to easy translation.
985                Implementations requested by Fred Pacquier <fredp@dial.oleane.com>
986
987Jul/29/1999: Changed: convert userid to lowercase to disable username case-sensitivity
988                when using auth_smb.
989                Implementations requested by Doug Burks <DBurks@Augserv.com>
990             Changed: the sqmgrlog.conf now installs into /usr/local/etc
991                Implementations requested by Daniel L Sjvsvdrd <daniel.sjosvard@paals.se>
992
993Jul/06/1999: Y2K bug fixes.
994                Thanks to askat@crimea.net  (JSC CRELCOM)
995             Bug fixed: special character in userid cause core dump.
996	        Thanks to Rick_Barzilli@xircom.com
997	     Splitlog function added:  -split will split the log file by date in -d parameter.
998                Eg.: sqmgrlog -split -d 01/07/1999-02/07/1999 [-convert] [-g e]
999
1000Jun/14/1999: German language added by Andreas Piesk <a.piesk@gmx.net>
1001                Thank you
1002             Some minor changes made by Andreas Piesk, thanks for the patches.
1003
1004Jun/09/1999: Bug fixed: to send reports via mail, use mail instead mailx in FreeBSD.
1005                Thanks to Evren Yurtesen <yurtesen@ispro.net.tr> to share your FreeBSD with me.
1006             Bug fixed: wrong userid when using smb_auth authenticator.
1007                        The userid will be changed from NTDOMAIN\username to NTDOMAIN.username.
1008                Thanks to Jouko Ylikulju <Jouko.Ylikulju@pkcables.com>
1009
1010Jun/04/1999: Y2K compliance implemented.
1011             Bug fixed: wrong report created when using common log format.
1012                Thanks to Carlos Santillana <Carlos@los-fresnos-cons.k12.tx.us>
1013             Bug fixed: wrong fopen with "rt", must be "r".
1014                Thanks to Wayne Bastow <wbastow@ccahs.health.nsw.gov.au>
1015
1016May/31/1999: Turkish language added by Evren Yurtesen <yurtesen@ispro.net.tr>
1017                Thank you
1018             Bug fixed: users in exclude_users file were not removed from reports.
1019                Thanks to Arthur S. Petrossian <arthur@ipia.sci.am>
1020                Thanks to Evren Yurtesen <yurtesen@ispro.net.tr>
1021             Bug fixed: core dump when using output_email parm and mailx not installed.
1022                Thanks to Evren Yurtesen <yurtesen@ispro.net.tr>
1023             Thanks to Evren Yurtesen <yurtesen@ispro.net.tr> to share your FreeBSD with me.
1024
1025May/20/1999: New report field added: IN CACHE and OUT CACHE.
1026                This field show how many bytes (percent) was retrieved from the cache.
1027  	        Implementations requested by Arthur S. Petrossian <arthur@ipia.sci.am>
1028
1029May/14/1999: Bug fixed. Abnormal End when using -i option
1030                Thanks to Carlos Canau <canau@ionia.EUnet.pt> for the patch.
1031             Bug fixed. Sqmgrlog freeze if some records are broken in access.log file.
1032                Thanks to Rick_Barzilli@xircom.com
1033             Bugfix that prevents sqmgrlog from freezing up if a log file has "holes" (sequences of zeros)
1034             (caused by filesystem crash).
1035                Thanks to drdivano@mail.axon.ru for the patch.
1036
1037Apr/14/1999: Per user limit added.
1038                 If the user exceed the limit, userid will be saved in a file that can
1039                 be used in squid acl.
1040	         Field per_user_limit added to sqmgrlog.conf: per_user_limit file limit
1041                    file : where userid must be saved
1042                    limit: in MB   Eg. 40 will limit in 40 MB.
1043	         Implementation requested by Csaba Kabai <ckabai@icnpharm.com>
1044
1045Mar/11/1999: Field exclude_users now accept indexonly to create only index.html report.
1046                Implementation requested by Hanni Daniel <daniel.haenni@softlab.ch>
1047	     Bug fixed for FreeBSD. Missing \n on topuser.
1048                Thanks to Andrew <andrew@extrim.ru> for share your FreeBSD-3.1
1049             Some minors fixes and changes in html layout.
1050                Thanks to Andrew Barnes <a.barnes@kaldor.com.au>
1051
1052Mar/03/1999: Bug fixed. Wrong href link if userid in format userid.name...
1053                Thanks to Manon Goo <manon@manon.de>
1054             Some changes on variable translations.
1055                Thanks to Matteo Colombo <matteo@calcol.it>
1056             Russian language (KOI8-R) added by Palamarchuk Eugen <eugen@cit.od.ukrtel.net>
1057                Thank you
1058             Field exclude_users added to sqmgrlog.conf.
1059	        Users within the file will be excluded from reports.
1060                Implementation requested by Hanni Daniel <daniel.haenni@softlab.ch>
1061
1062Feb/26/1999: New date/time report added.
1063	        Look at http://www.orso.x5.net/squid-reports/1999Feb01-1999Feb08/duser24.html
1064	     -d option now accept from-until (dd/mm/yy-dd/mm/yy) dates.
1065	        Requested by Eric V. Pino <ericvp@roadrunner.com.ph>
1066
1067Feb/10/1999: Italian language added by Matteo Colombo <matteo@calcol.it>
1068             Thank you.
1069             -convert option added. Convert the access.log file to a legible date
1070             and time format. May be used with -l and/or -g options.
1071
1072Feb/05/1999: Field date_format added to sqmgrlog.conf.
1073                date_format u: reports with USA format mm/dd/yy
1074                date_format e: reports with Europe format dd/mm/yy
1075                Implementation requested by Matteo Colombo <matteo@calcol.it>
1076             Bug fixed: temporary file cannot be created if not run in root.
1077                Thanks to Carlos Canau <canau@ionia.EUnet.pt> for the patch.
1078             Changes from Tony Lorime <alorimes@csc.com>: use atoll instead atol in Solaris
1079			                                : ignore .htaccess when selecting files
1080	        Thank you.
1081
1082Dec/21/1998: -b option added. Generate useragent report.
1083                field useragent_log added to sqmgrlog.conf
1084    	        Implementation requested by Alp <support@x5.net>
1085             -j option added. Generate a kind of abuse report.
1086    	        Implementation requested by Alp <support@x5.net>
1087                To use this feature you must apply a patch (http://www.orso.x5.net/patches) on Squid.
1088             -c exclude option improved. Now you can exclude B classes
1089    	        Implementation requested by Yin Jun <yinj@mars.ahu.edu.cn>
1090             Bug fixed for Solaris. Must user -lsocket and -lnsl to resolve names.
1091                Thanks to Ryan Roehrich <ryanscott@mindless.com>
1092
1093Dec/11/1998:  Bug fixed for long long int in Alpha Digital
1094   	        Thanks to Ilya V. Komarov <mur@mur.lynx.ru> for share your Digital server.
1095
1096Dec/10/1998:  Version 2.2 released
1097	     -n option added. Resolve domain name for reports with IP Address.
1098                Field resolve_ip added to sqmgrlog.conf
1099             Sort report by header fields implemented
1100                Fields report1_sort_field and report2_sort_field added to sqmgrlog.conf
1101             -f option added. Allow config file override
1102             Exclude hosts implemented
1103                Field exclude_hosts file added to sqmgrlog.conf. Exclude ips, names, subnets
1104                  from reports.
1105  	        Implementations requested by Arthur S. Petrossian <arthur@ipia.sci.am>
1106
1107Dec/07/1998:  Version 2.1 released
1108             sqmgrlog now can read log file in gzip or compress format.
1109    	        Implementation requested by Alp <support@x5.net>
1110
1111Nov/09/1998:  Version 2.0 released
1112             -p option added. Allow redirect output report to email address.
1113             sqmgrlog.conf with colors, headers, title, font size, background color, text color,
1114                background image, font face, etc... added.
1115             Reports will be generated only for users in passwd file (tag password in sqmgrlog.conf).
1116             Many changes in html output layout.
1117                Thanks to Alp <support@x5.net>
1118
1119Oct/19/1998:  Bug fixed by Maxim Berlin <mak@unesco.mitht.rssi.ru> for long long int in FreeBsd.
1120             Many thanks.
1121             Thanks to Ilya V. Komarov <mur@mur.lynx.ru> to share your FreeBSD 3.0 server to help on fixing.
1122
1123Sep/28/1998:  Bug fixed for log with emulate http on (Squid 1.2.beta)
1124                Thanks to Alp <support@x5.net>
1125	     -p option added. Generated reports with IP Address instead Userid.
1126	     Use this option if you do not use Proxy authentication on Squid.
1127    	        Implementation requested by Szalma Zoltan <zszalma@file.matav.hu>
1128
1129Aug/11/1998:  Bug fixed for memory slack.
1130		Thanks to kevin@mcpeake.net
1131		 	  Jose Luiz <jluiz@projesom.com.br>
1132			  Patrick Darden <darden@server2.armc.org>
1133			  Steve Chan <Steve.Chan@lucasfilm.com>
1134
1135Jul/07/1998:  Spent time added for native Squid log format (emulate_httpd_log off).
1136	     Connect added.
1137	     Layout change in html reports.
1138
1139Jun/02/1998:  -o option added. Allow output dir override.
1140	     Implemented index.html on root output dir.
1141	     Implemented auto rename if output dir already exist.
1142	     bug fixed, link error if user change output dir in conf.h
1143	     Thanks to Alp <cybergulf@cybergulf.net>
1144
1145May/28/1998:  -v option added. Allow Squid version override.
1146
1147May/28/1998:  Bug fixed in common log format
1148	     Thanks to Tony Lorimer <tlorimer@health.csc.com.au>
1149                       Alp <cybergulf@cybergulf.net>
1150	               Carlos Santillana <carlos@los-fresnos-cons.k12.tx.us
1151
1152May/21/1998:  Implemented Squid version verification because common log
1153	     from 1.1 differ from 1.2 version.
1154	     -i option added (report by user and IP address)
1155
1156May/19/1998:  configure script implemented.
1157
1158May/18/1998:  Implemented auto log format recognize (Squid and Common log)
1159
1160Apr/15/1998:  bug fixed. Some garbage on period.
1161             Thanks to Lee Shakespeare <lee@webfoundry.co.uk>
1162
1163Apr/15/1998:  -z option added (debug)
1164
1165Apr/07/1998:  top.html changed to index.html
1166
1167Mar/31/1998:  index.html added
1168
1169Mar/25/1998:  sqmgrlog was created
1170