ipa-2.1.2	released

Changes:
    *	autoconf 2.68 -> 2.69, automake 1.11.1 -> 1.12.2.

    *	Corrected compilation with --enable-ctl-creds on NetBSD.

    *	Corrected output for "ipactl -a ... status".

    *	Corrected work with the -n switch in ipactl.

-----------------------------------------------------------------------

ipa-2.1.1	released

Changes:
    *	Corrected compilation when --with-ipa-pthread or
	--with-ipastat-pthread was specified.

    *	Corrected format of tables in "ipactl memory" output.

    *	Corrected access to free memory in ipa when dynamic rule is deleted.

    *	Call log_stderr() and log_stdout() after ipa.conf file parsing.

    *	Simplified and renamed confcommon.c:print_spaces().

    *	Corrected output of "ipa -v" and "ipa -h".

-----------------------------------------------------------------------

ipa-2.1		released

Changes:
    *	Versions of ipa_{ac,db,st}_mod APIs were changed to 2.

    *	Optimized and simplified source code of IPA.

    *	New parameter "ictl" in ipa.conf.

    *	New parameter "ctl_query_max_size" in ipa.conf.

    *	New parameter "value_units" in ipa.conf and ipastat.conf.

    *	Now "restart" and "expire" parameters are optional in ipa.conf.

    *	Now "limit" and "threshold" parameters in ipa.conf can be
	equal to zero.

    *	Now ipactl can create and delete dynamic rules.

    *	Now ipactl accepts commands "set limit ... counter ..."
	and "set threshold ... counter ...".

    *	If a limit or a threshold uses "null" database and if it was
	initialized, then next time during initialization (when some time
	related problem occurred) imitate its old state from its current
	state.

    *	Allow to use '_' characters in macro variables names.

    *	Added support for ipactl's messages credentials checking for NetBSD.

    *	Give limitation on the depth of included files (macro variable
	INCLUDE_DEPTH_MAX with default value 100).

    *	configure.ac was optimized.

    *	All manual pages were reformatted to follow traditional
	typographic style.

    *	Now all debug messages in ipa and ipastat are written with
	the "DEBUG: " prefix.

    *	Check correctness of names of dynamic rules and names in
	received control commands.

    *	Check correctness of names in ipa, ipastat and ipactl
	options arguments.

    *	Now ipa does not use SIGALRM in timeout implementation for
	control socket.

    *	Now ipactl does not use SIGALRM in timeout implementation.

    *	Now non-standard function mem_vasprintf() exported to modules
	returns number of characters in allocated buffer.

    *	Now if some configuration error occurred in included file,
	then ipa and ipastat log include history, that allows much
	easy identify point of failure.

    *	Now ipactl does not have limits on lengths of rules, limits,
	thresholds names.

    *	In some places where EWOULDBLOCK is checked, checks for EAGAIN
	were added, as it is documented in SUSv3.

    *	On some systems there is no strtoull(3) function, which
	is part of SUSv3, check it in the configure script and
	use own version if it is absent.

-----------------------------------------------------------------------

ipa-2.0.9	released

Changes:
    *	Check that a module defined db_deinit_rule(), st_init_rule(),
	st_deinit_rule(), st_init_limit(), st_deinit_limit(),
	st_init_threshold() and st_deinit_deinit_threshold() before
	calling these functions.

    *	Corrected one race condition: ipa could forget about a SIGCHLD
	signal and as a result it did not call waitpid(2) for exited child
	process and could perform polling in select(2).

    *	"ipa -t" did not show "debug_exec" parameter for "autorule" section,
	corrected.

-----------------------------------------------------------------------

ipa-2.0.8	released

Changes:
    *	autoconf 2.62 -> 2.68, automake 1.10.1 -> 1.11.1.

    *	Time events in ipa.conf for +h, +D and +W could be incorrectly
	scheduled (plus one extra hour for +h and plus one extra day for
	+D and +W), corrected.

    *	If threshold's tm_from time and tm_updated time are equal and
	their month day is the last day in a month, then ipa incorrectly
	calculated previous threshold_time_width value during threshold's
	initialization.

-----------------------------------------------------------------------

ipa-2.0.7	released

Changes:
    *	If during initialization a limit has time of START, REACH or
	UPDATED event greater than current time, then ipa will not restart
	such limit immediately.

    *	If during initialization a not reached limit has time of START event
	greater than current time, then ipa will change time of this event
	to current time and will not restart such limit immediately.

-----------------------------------------------------------------------

ipa-2.0.6	released

Changes:
    *	autoconf 2.61 -> 2.62, automake 1.10 -> 1.10.1.

    *	When time goes back or changes too quickly, then ipa incorrectly
	used too much CPU time and generated a lot of log messages.
	Reported and tested by Philip Jocks <pj at netzkommune.de>.

    *	Now several databases can be written in "db_list" parameter's
	value in ipa.conf.

    *	Now lint can check source code of IPA.

-----------------------------------------------------------------------

ipa-2.0.5	released

Changes:
    *	When ipa received a control command from "ipactl -n", then
	it did not close opened file descriptor.

    *	All sections inside rule { startup{}} in ipa.conf were ignored.

    *	Time events for +D and +W in ipa.conf could be incorrectly
	scheduled at 24:00:00.

    *	Time events for +W in ipa.conf could be incorrectly scheduled
	at 00:00:00 of Sunday.

    *	If SYM_PREFIX is defined and if symbols in modules with
	SYM_PREFIX were successfully lookuped, then ipa and ipastat
	incorrectly refused to use such modules.

-----------------------------------------------------------------------

ipa-2.0.4	released

Changes:
    *	Now IPA can be used on Cygwin (previously it only could be built).

    *	If SYM_PREFIX is defined, then ipa and ipastat try to lookup
	symbols in modules with SYM_PREFIX, if this attempt failed,
	then they try to lookup symbols without prefix.

    *	Use closefrom() system call if the system supports it.

    *	During startup ipa could unlink locked PID-file that was
	locked by another ipa process.

    *	WCOREDUMP macro is not mentioned in SUSv3 (#ifdef it).

-----------------------------------------------------------------------

ipa-2.0.3	released

Changes:
    *	If value in command line for ipactl is given in time units,
	then ipactl ignored overflow during parsing.

    *	If limits and thresholds were disabled during compilation,
	then ipactl did not accept the -r option.

    *	The limit{} section in ipastat.conf placed in incorrect place
	could cause segmentation fault.

-----------------------------------------------------------------------

ipa-2.0.2	released

Changes:
    *	If a system does not have LOG_PERROR flag for syslog(3) (this
	is a non-standard flag), then "ipa -d" did not output log
	messages to stderr.

    *	Now the configure script checks vsyslog() function, which is
	not mentioned in SUSv3.

    *	Added checks for int32_t, uint32_t, int64_t and uint64_t
	to configure.

    *	autoconf 2.59 -> 2.61, automake 1.9.6 -> 1.10.

    *	Now autoheader is used for generating src/config.in.h.

    *	New options for configure: --enable-gcc-more-warns,
	--disable-gcc-warns.

    *	It was not possibly to correctly redefine SYM_PREFIX macro
	variable, added relevant description to INSTALL.

    *	If positive counter of some rule is overflowed, then
	statistics was incorrectly updated in databases.

    *	Initialization of descriptors in ipa was incorrect if
	stdin, stdout and stderr were closed.

    *	Usage of "include_files" parameter in ipastat.conf caused fake
	log messages about memory leak.

    *	Values in "limit", "expire", "restart" and "threshold" parameters
	could not be written with spaces, corrected.

    *	In the configure script --enable-FEATURE and --disable-FEATURE
	disabled FEATURE.

-----------------------------------------------------------------------

ipa-2.0.1	released

Changes:
    *	Now if some included configuration file has wrong owner or
	permission bits, then ipa always considers this as an error.

    *	One memory leak, which occurred during reconfiguration
	in ipa, was found.

    *	If threshold_deviation was not given in per cents, then
	a threshold worked incorrectly, this was corrected.

    *	ipastat did not honor ipa_st_mod API when called conf_event()
	function for modules.

    *	Check for infinitive cycles with "ac_gather_*" parameters
	was removed, previous check does not honor "worktime" parameters.

    *	Handling of SIGCHLD signal for running command in foreground
	in "ipa -x ..." was removed, this is not necessary.

    *	Use ctime_r(), getpwnam_r(), getgrnam_r() and strerror_r()
	functions in thread-safe version of ipa and ipastat.

    *	memfunc.c was simplified: not needed types castings were removed.

    *	Checks for errno values from readdir(), getgr*() and getpw*()
	functions were added.

    *	Now it is possible to build IPA on 64bits systems: found one
	typo in function argument's type; offsetof and sizeof return
	size_t result, socklen_t and sig_atomic_t can be long integers.

    *	Possible race condition between creating control local
	domain socket and changing access permission for its file
	was corrected.

    *	Configure option --disable-ctl-creds was changed to
	--enable-ctl-creds.

    *	On FreeBSD during ipactl's messages credentials checking
	incorrectly EGID of sending process was checked.

    *	If some error occurred during initialization and if autorules
	are used, ipa could pass uninitialized rules_ptr_marray pointer
	to memfunc's functions.

-----------------------------------------------------------------------

ipa-2.0		released

Notes:
    *	First release of Pluggable Accounting System, which
	supports static and dynamic rules; limits, sublimits and
	thresholds; external accounting, database and statistics
	modules and many more.