$Id: CHANGES,v 1.44.2.5 2000/07/12 23:14:13 moritz Exp $

V0.9 - initial revision

V0.91:
Added time zone arithmetics
fixed bug in ipacsum: no input files and -r
added CHANGES file
corrected documentation

V0.93:
Improved -t time frame syntax
Added graph support
Added -f filter option

V0.94:
Fix: no longer produce readdir() warning
-s and -e can take relative times, too
minor fixes

V0.95:
Added official distribution site
Added -d option to ipacsum
Avoided warnings

V0.96:
- ipacsum:
        better handle corrupt data file content
- ipacset + fetchipac:
        be more robust about missing permissions or RUNFILE
        don't call fetchipac on initial call at boot time
        handle all lock file cases correctly

V0.97:
- subst.c: fixed compile error under libc6 / RedHat 5.1
- ipacsum: fixed (nearly) endless loop when no start time was given and -g

V0.98 (98/07/14):
- changed default lock file directory from /tmp to /var/lock (security)
- ipacset: discovered ipfwadm may add more than one line to the kernel
	tables with one call - this happens when a host name resolves to
	more than one ip address. As a result, all gathered data were 
	messed up. Fixed ipacset to handle this properly.
These changes to ipacset were done by Friedrich Lobenstock 
<fl@fl.priv.at> [FL], thanks!:
  - Fixed a bug if there exist empty lines in /etc/ipac.conf
  - Added some basic syntax checking (empty parameters)
  - Added command line option '-D' for debugging
  - Not really added support for bidirectional rules.
	Just say 'io'(or 'both' as in ipfwadm(8)) instead of
	'in' or 'out' in /etc/ipac.conf
- README: Added hint to mailing list
- support for long option names

V0.99 (98/07/29)
- added man pages
- corrected many spelling errors (discovered ispell). Changed "--intervall"
	option of ipacsum to "--interval" :-). (Old version still works)
- added gif image creation (all options beginning with --gif)
- added --version

V1.00 
- improved ipacset error handling
- fixed order of week days in ipacsum
- added average value feature for gif pictures
- --gif-caption-in-index / show max and average values in html index file
- --show-run-progression / display a progression indicator while running
- added "Resolution:" in index.html
- support for empty interface spec in ipac.conf for "any interface"
- --gif-asis, HTTP Expires: header lines and HTML META tags
- can now define two or more rules with the same name. ipac shows the
	sum in its outputs

V1.01
- fixed 'Illegal division by zero at /usr/local/bin/ipacsum line 763.'
- minor sub-pixel fix in gif creation (probably never visible)

V1.02 (1999/04/14)
- ipacsum: --gif-average-dots
- Linux 2.1.* and up kernel / ipchains compatibility
- --gif-caption-in-index shows total traffic (for whole gif image)

V1.03 (1999/05/10)
- fixed bugs in ipacset and fetchipac which appeared with some shells
- added handling of cases when something deletes some or all of ipac's
	settings in the kernel (ipacset --fix-chains, fetchipac corrupted
	kernel settings detection, "BUGS" section in ipacset(8))

V1.04 (1999/05/31)
- bug fix concerning ipchains option --fix-chains (still had problems with
	firewall scripts)
- bug fix for /bin/sh compatibility in ipacset

V1.05 (1999/08/06)
- bug fix ipacsum "this week", "last week", "the week n weeks ago"
- bug fix no "in" rule resulting in "out" rules not counting

V1.06 (2000/01/24)
- added support for .png images while being backward compatible to old .gif
	images... if you have the GD library. Renamed all options '--gif-*'
	to '--png-*' in the documentation; the old versions still work.
- --gif-average-curve now "smoother"
- --fixed-quantity
- --png-total
- made pathsearch more compatible (hints from Thomas <thomasz@hostmaster.org>)
- added contrib/ directory with ipac.cgi by Dan Swan <swan_daniel@hotmail.com>

V1.07 (2000/02/25)
- added debug code to ipacsum which can be stripped off on install by an
	awk script in Makefile
- introduced 'accuracy' to ipac. ipacsum's output is now The Correct Numbers,
	I believe. All older versions didn't have a real concept about 
	calculating the correct numbers at the beginning and the end of a
	given time frame, resulting in incorrect values at the edges of a
	given time frame. 
	
	Specifically, ipac would take each data file it found in the data file
	directory which was created within the given time frame; if there was
	no data file, it would take no data file; and sum them all up. If you
	had one data file for the whole day, created at 23:58 h, it would give
	you a good result if you asked about the whole day, but asked about
	0:00 h (start time) to 23:50 h (end time), it wouldn't find any data
	and display nothing. Asked about 23:50 (start time) to 23:59 (end
	time), it would give you the whole day's data.

	As of this version, ipacsum really evaluates the correct values by
	considering all data from the given time frame plus the data from
	directly before and after the time frame. If the data for a given time
	frame is not specific enough, ipacsum computes an average value. Given
	the example above, asked about the whole day's data, ipacsum would
	consider the data from 23:58, but also the time of the data before this
	day (possibly with a time stamp of the day before, 23:58), and the data
	of the next file. So the values would be (a little) more accurate.
	Asked about the time until 23:50, the values would probably decrease a
	little. And asked about the time from 23:50 to 23:59, it also would
	only display this nine minutes' share of the collected values.

	Also, --replace now works in a conceptual
	meaningful way. The generated file's name is now derived from
	the time at the end of the time frame (before: from the newest file
	that was read).

- rewrote fetchipac in C. It is now more robust, more verbose in case of
	errors and it *could* be extended to store its data into a database.
	(Also, it creates much smaller data files and uses much less 
	system resources. And it does no longer use programs like
	ipchains, ipfwadm, awk and so on.)

V1.08 (2000/04/29)
- ipacsum bug fix --fixed-quantity and values >2^31 (showed negative numbers)
- ipacsum bug fix dont try to read data files which are directories or which
	have an invalid file name
- ipacsum bug fix dont reproduce old, deleted rules and old rule order on 
	--replace runs. dont create empty meaningless files on --replace runs
	which may confuse ipacsum, saying "* = data incomplete..."
- ipacsum bug fix --gif-total (option wasn't recognized)
- ipacsum add --filename-prefix option
- added 'ipac_and_mrtg' to contrib directory

V1.09 (2000/06/06)
- fetchipac: bug fix keep rule order in ipchains systems in any case
- ipacsum: bug fix: don't make time frame in images longer than it should be
	in infrequent cases
- ipacsum: bug fix: (again) dont make first value in images too high in rare
	cases

V1.10
- added Suse rpm directory under contrib/

V1.90 ()
- fetchipac: extended to support different storage method backends
- fetchipac: made the old storage method a storage method backend module
	called "plain-file"
- fetchipac: new storage method backend: gdbm
- fetchipac: rewrote build process to support storage backends as "plugin"
	using autoconf
- fetchipac: spool mechanism
- ipacsum: reworte data access to support new storage method backends
	(data access through fetchipac)
- ipacsum: --fetchipac, --storage-method, --dir


ipac-ng v1.0
- fetchipac: ipacsum: new author, broken by design and badly speaking english
- fetchipac: extended to support different accounting agents
- fetchipac: gdbm support removed
- fetchipac: small bugfixes in batch.y, ipchains.c, fetchipac.c
- fetchipac: iptables now supported
- fetchipac: ipfwadm support is gone
- fetchipac: new options recognized (some of them are working ones :), first of
               them is -S - startup, says fetchipac to make old ipacset's work
	       so ipacset is now obsolete.

	As of this version, format of config file has changed. Take a look
	for it in ./contrib/sample_configs/kaiser.ipac.conf. Basically it's
	the same as an old one but you can not specify more that one port 
	(source\destination) in one line now. Surely you are still able to
	specify both of source and destination port but only one source and 
	one destination in a line. Maybe this will be fixed (does someone
	need this?). You _have_ to fill every field in config.


ipac-ng v1.01
	minor to major fixes in 'configure' script.
	Now it can automatically determine if there is no pq library and
	don't try to compile in postgre storage method.
Files added: postgre.readme - some barebone instructions to make use of
	your database


ipac-ng v1.02
	Some fixes for compatibility with iptables-1.2.2.


ipac-ng v1.03
fetchipac: Added some code to work with FORWARD chain in iptables
fetchipac: Added textual instructions how to enable filtering in kernel and
	    one possible core dump removed
fetchipac: iptables accounting agent: new iptc used from CVS
fetchipac: additional testing for iptables-1.2.1a/1.2.2 and 
	    kernels 2.4.4/2.4.5/2.4.5-ac5/2.4.5-ac9 was made


ipac-ng v1.04
fetchipac: one(or more) possible core dump(s) removed
fetchipac: config file code reworked, now it's much better, but multiport
	    is still not supported (next version will)
fetchipac: additional testing for iptables-1.2.1a/1.2.2 and 
	    kernels 2.4.4/2.4.5/2.4.5-ac5/2.4.5-ac9 was made
fetchipac: gdbm is back - it is preffered storage now
fetchipac: you can convert your old data to any new format with ipac-convert


ipac-ng v1.05
fetchipac: can use config file from ipac-1.90/ipac-1.10/too old
fetchipac+ipacsum: reworked so now using database is much faster (ipacsum now
		    works 50-1000 times faster, depending on data size, thanks
		    to Manfred Weihs)
README: updated
fetchipac: last (hehe ;)) coredump removed
UPDATE: updated


ipac-ng v1.06
fetchipac: now inserting jumps to chains
fetchipac: coredump introduced in 1.05 removed
README: updated
fetchipac: some work with neoclassic mode done
fetchipac: compilation problem with RedHat 7.0/7.1 fixed


ipac-ng v1.07
fetchipac: now interfaces are work correctly with iptables (thanks to T. Mohan)
added: new ipac.cgi with description from T. Neshev (./html/cgi)


ipac-ng v1.08
fetchipac: cosmetic changes to make both directions work
ipacsum: small bugfix
iptables: code cleanup
	configure now make right choices to make iptables-less machines compile
	right


ipac-ng v1.09
fetchipac: cosmetic changes to make both directions work
ipacsum: small bugfix
iptables: code cleanup
ipchains: code cleanup & some bugfixes
configure: some more intellect added
new config file format
new cgi added - take a look for it


ipac-ng v1.10
fetchipac: cosmetic changes to make both directions work
ipacsum: small bugfix
batch.y: small bugfix
iptables: code cleanup
ipchains: code cleanup & some bugfixes
configure: some more intellect added
neoclassic mode is in beta stage now..


ipac-ng v1.11
ipchains: set TOS to 0xFF 0x00 instead of 0x00 0x00.
Many little patches and fixes done.
README updated.
TODO updated.
README-NG.RUS added. It contains step by step instructions how to start your
	    ip accounting. (Russian-only for now).
man updated.
ugly flawed half-done web interface added.


ipac-ng v1.12
Many little patches and fixes were done.
README updated.
README-NG added.
ugly flawed half-done web interface improved.
traffic script fixes\changes.
alpha support for detailed logging added.
syncing mechanism for reconfiguration of firewall rules with changes in 
web interface added.
ipac-ng.spec added (thank to Alex Miller)


ipac-ng v1.13
traffic script fixes\changes.
minor configure fixes\additions.
gdbm storage fixes.


ipac-ng v1.14
postgres storage fixes.
many little fetchipac fixes were done.
config file parser: 'incorrect line' bug fixed.
pause\detailed not working fixed.
both\io direction support completely removed, use combination of in\out rules 
			instead.


ipac-ng v1.15
postg access method fixed.
traffic script impovements were done.
ipacsum-light contributed by pg at philipp.de.com added to contrib.
iptables way of doing work with interfaces fixed, thanks to Zemlyanovskiy L. D.
new ipac-ng.sql. now it is compatible with pg_restore of postgresql-7.1.3
many other little fixes were done.


ipac-ng v1.16
postg access method fixed again.
traffic script impovements were done.
fetching speed was improved.
many other little fixes were done.


ipac-ng v1.17
Bugfix.


ipac-ng v1.18
Bugfix.
web interface reworked.
minor changes in database structure.


ipac-ng v1.19
The ipchains.c inversion flag setup was fixed.
Minor changes were made to the web interface.
fetchipac.c was changed to improve fetching\cash checking speed.
fetchipac.c was changed to correctly operate with monthly payments.
ipacsum was fixed to correctly operate with incorrect or empty timeframes.
Postgresql access method was changed to correctly operate with loan\negative cash.
Minor fixes were made to iptables.c.


ipac-ng v1.20
Bugs introduced in 1.19 were fixed.


ipac-ng v1.21
Iptables way of working with icmp was fixed.
Short\long chains names setup for iptables was fixed.
Web interface was improved.
Configure script options for database definition were added.
Ipacsum switch for omitting zero bytes lines was added.


ipac-ng v1.22
Small bug in ipchains was fixed.
MAX_RULE_NAME_LENGTH default size was reduced to 32.
Web interface was improved.
Traffic script was reworked.
Configure script option 'dropzero' added.
Ipacsum switch for omitting zero bytes lines was extended to support png.
TODO list updated.
postg access method was fixed for proper logout.
Many other small things were done.

ipac-ng v1.23
iptables bug that prevent specifing interfaces with '+' was fixed.
new config file added (see at contrib/sample_configs/ipac-ng).
Web interface was improved.
Configure script option 'dropzero' dropped.
TODO list updated.
batch mode rewritten.
problem with chains first solved.
Configure script options for database were fixed.
New rules config file format - see at ./contrib/sample_configs/ipac-ng/*

ipac-ng v1.24
Ipac-ng-suse-8 howto was added.
Files corrected to plain-file in ipac.conf.
Spooling now works again.
Segfault with bad config fixed.
Batchmode fixed so now ipac-convert works fine.
Other little fixes were done.

The changes in this release are as follows:
The Ipac-ng-suse-8 howto was added. Files have been corrected to
plain-file in ipac.conf. Spooling now works again. A segfault with
bad configurations has been fixed. Batch mode has been fixed so that
ipac-convert works correctly. There are other little fixes.

ipac-ng v1.25
Batchmode was fixed again.
The ipac-2-mrtg contrib section was added.
Compile problems with gcc 3.2 were solved.
Runfile parsing with ipchains has been fixed.
There are other little fixes.

ipac-ng v1.26
Now supports multiple accounting hosts (see -H options to fetchipac and ipacsum)
Fetching speedup
New word 'hostname' in config
Access agent name 'postg' changed to 'postgre'
Old configs samples were removed
Minor changes in database structure (read UPDATE-1.26)
Postgre is now recommended storage

ipac-ng v1.27
Compile problem with no postgresql has been fixed.
Gdbm storage problem introduced in 1.26 has been fixed.
Default config file has been corrected.
