2005-01-07    <vadim@vk.crocodile.org>

	* v2.0.5 released
	
2004-12-22    <vadim@vk.crocodile.org>

	* Compiler.cpp (createRuleLabel): fixed bug #1068119: "additional
	whitespace for Rule comments in .fw file". Added extra space
	between rule number and interface spec in rule comments.

2004-12-04    <vadim@vk.crocodile.org>

	* FWObjectDatabase.cpp (merge): Corrected error caused by the
	change made on 12/04/04. We now delete "deleted objects" from
	libraries we are merging in before calling
	FWObjectDatabase::merge.  Ignoring "Deleted objects" here caused
	problems; in particular, deleted objects disappeared from a data
	file whenever it was opened. This happened because we merged
	user's data file into standard objects tree, so user's file was
	_source_ here, and deleted objects in it were ignored.

2004-12-03    <vadim@vk.crocodile.org>

	version 2.0.4 released
	
2004-11-30    <vadim@vk.crocodile.org>

	* CustomService.cpp (toXML): using xmlEncodeSpecialChars to encode
	special chars in custom service code (code may use '&' which is a
	special character and needs to be encoded before storing in XML)

2004-11-23    <vadim@vk.crocodile.org>

	* Compiler_ops.cpp (checkForShadowing): still working on the
	IPService object shadowing changes. ip fragments object was
	shadowing GRE object, which was incorrect. Hopefully this change
	finally fixes it.

2004-11-17    <vadim@vk.crocodile.org>

	* dns.cpp (init): fixed bug (no number): program crashed on
	FreeBSD 5.3 when using SNMP to obtain parameters for hosts and
	interfaces. Crash occurred because of use of uninitialized mutex
	variables in module dns.cpp

2004-11-15    <vadim@vk.crocodile.org>

	* Compiler_ops.cpp (checkForShadowing): fixed bug (no num): rule
	shadowing algorithm checks for IP flags in IP service object. IP
	service object with protocol 0 shades anything only if its flags
	are cleared. Two IP services shade each other only if they are
	completely equal (protocols and all flags settings are the
	same). However, IP service with protocol 0 shades other IP service
	with protocol !=0 if all flags settings are the same.

2004-11-12    <vadim@vk.crocodile.org>

	* FWObjectDatabase.cpp (merge): changes in the object database
	merge algorithm: when an object database we are trying to merge
	has non-empty "Deleted objects" library, deleted objects from this
	library should be ignored (they used to be deleted from the
	current tree). Likewise, when current tree has non-empty "Deleted
	objects" library and objects in it match objects being merged in,
	objects should be removed from "Deleted objects" library to avoid
	creating duplicate IDs with objects being merged in.


2004-11-10    <vadim@vk.crocodile.org>

	* Compiler_ops.cpp (checkForShadowing): fixed bug (no number):
	rule shadowing algorithm now assumes that IPService object with
	protocol number '0' shadows any other service just like 'any'
	does.

2004-11-06    <vadim@vk.crocodile.org>

	* Compiler.cpp (complexMatch): fixed bug #1055937:
	"Any->all_multicasts not in INPUT Chain". Need to check if network
	objects are multicasts; assume that multicast always matches
	firewall object (e.g fwb_ipt will put rule with such network
	object in destination in INPUT chain)

2004-10-23    <vadim@vk.crocodile.org>

	* Compiler.cpp (_complexMatchWithInterface): fixed bug #1040773:
	need to match network address as well as broadcast. Packets sent
	to the network address (192.168.1.0 for net 192.168.1.0/24) go in
	the broadcast frame and behave just like IP broadcast packets
	(sent to 192.168.1.1255 for the same net)

2004-09-30    <vadim@vk.crocodile.org>

	* v2.0.3 released
	
2004-09-11    <vadim@vk.crocodile.org>

	* RuleElement.cpp (reset): added method RuleElement::reset(). This
	method clears all children of a rule element, sets it to 'any' and
	clears negation flag.

2004-09-08    <vadim@vk.crocodile.org>

	* Firewall.cpp (duplicate): fixed bug (no number): all references
	to the interfaces, as well as their IP and MAC addresses, in
	policy and NAT rules should be replaced when Firewall object is
	duplicated. Until now only references to the firewall object
	itself and to its interfaces were replaced with references to the
	newly created copies of object. References to IP and MAC addresses
	still pointed at the old objects.

	* FWObjectDatabase.cpp (IDcounter): fixed bug #1022788: "GUI
	corrupts XML file after creating a second firewall". Global object
	ID counter was getting reset every time new FWObjectDatabase
	object was created. This lead to the ID collision if user quickly
	created and deleted complex objects (such as Firewall) and used
	database merge. This should also fix bug #1022785: "GUI corrupts
	XML file after creating a host entry"

	* VERSION: set version to 2.0.3

2004-09-07    <vadim@vk.crocodile.org>

	***************************************************************
	* merged branch fwb2                                          *
	***************************************************************

2004-08-31    <vadim@vk.crocodile.org>

	* v2.0.2 released
	
2004-08-30    <vadim@vk.crocodile.org>

	* VERSION (RELEASE_NUM): version 2.0.2, revision 1

2004-08-21    <vadim@vk.crocodile.org>

	* qmake.inc.in: fixed bug #1012733: "configure --libdir=DIR will
	be ignored at installation". Needed to use macro _libdir to specify
	target directory for libraries. Used it in configure, qmake.in,
	libfwbuilder-config-2 and a .spec file
	
2004-08-20    <vadim@vk.crocodile.org>

	* fwbuilder.dtd.in (TODO): added element physAddress to list of
	child elements of Library (bug #1011617)

2004-08-12    <vadim@vk.crocodile.org>

	* v2.0.1 released
	
2004-08-04    <vadim@vk.crocodile.org>

	* XMLTools.cpp (loadFile): deleting .bak file prior to renaming
	the original one during autoupgrade procedure. Rename failed on
	windows if .bak file already existed.

2004-08-02    <vadim@vk.crocodile.org>

	* FWObject.cpp (deleteChildren): fixed bug #1001833: "memory leak"
	- children objects were not deleted when FWObjectDatabase object
	was destroyed.

2004-08-01    <vadim@vk.crocodile.org>

	* FWObject.cpp (getPath): fixed bug #1001725: "object with empty
	name can not be deleted". the problem was caused by the algorithm
	used in FWObject::getPath. If object had had a blank name, the
	path returned by this method would end with the name of its parent
	without slash.

2004-07-29    <vadim@vk.crocodile.org>

	* 2.0 released, CVS tag set.
	
2004-07-13    <vadim@vk.crocodile.org>

	* FWObjectDatabase.cpp (scanAndAdd): pulling objects from other
	libs if they are used for interface network zone while saving to
	file w/o unnecessary object copying

	* fwbuilder.dtd.in (TODO): added PolicyRule and NATRule elements
	to the list of child elements of Library

	* RuleSet.cpp (deleteRule): do not put deleted rules into "Deleted
	objects"

2004-07-10    <vadim@vk.crocodile.org>

	* FWObject.cpp (_moveToDeletedObjects): now move deleted objects
	to the special library with id 'sysid99' rather than delete them
	completely. This serves two purposes:
		1. can easily provide for undelete function which is very
		useful
		2. can catch a situation when an object has been deleted
		fromt he external library but is still used in the data
		file

2004-06-30    <vadim@vk.crocodile.org>

	* configure.in: using autoconf macro AC_C_BIGENDIAN to determine
	endianness of the system

2004-06-28    <vadim@vk.crocodile.org>

	* Network.cpp (shallowDuplicate): fixed a bug where network
	objects would not get copied properly when data file was saved w/o
	copies of standard objects (through exportSubtree)

2004-06-16    <vadim@vk.crocodile.org>

	* Compiler_ops.cpp (checkForShadowing): fixed bug #906709: "A
	dynamic interface". Dynamic interface used to "shadow" old
	broadcast object (0.0.0.0)

	* IPAddress.cpp (to32BitInt()): fixed bug that occured on big
	endian architecture (e.g. Macintosh) because of incorrect usage of
	preprocessor directives to check BYTE_ORDER. This bug caused
	incorrect address arithmetics.

	* (_convert_range_to_networks): fixed bug #950857: "Incorrect
	conversion of address range" - address range that consisted of two
	IP addresses was converted to a set of networks incorrectly.

2004-06-05    <vadim@vk.crocodile.org>

	* FWObjectDatabase.cpp (merge): fixed a bug in merge where the
	method would not ask the user for conflict resolution if
	user-defined libraries were different

	* FWObject.cpp (setReadOnly): setReadOnly does not change
	lastModified timestamp

2004-06-04    <vadim@vk.crocodile.org>

	* FWObjectDatabase.h (class FWObjectDatabase): added method that
	allows to reset "lastModified" time. Every time we load a database
	and merge it with the standard tree, lastModified timestamp
	changes. As the result, even if the user made no changes to the
	objects, the resultant tree is always different and RCS checks it
	in and bumps revision number up. Since user did nothing, it is
	confusing and uncessarily creates lots of revisions.

2004-06-02    <vadim@vk.crocodile.org>

	* fwbuilder.dtd.in: added attribute 'lastModified' to element
	FWBObjectDatabase. this attribute holds time of last modification
	done to any object in the database (GMT). Added support for this
	attribute in class FWObjectDatabase. This attribute is implied.

2004-05-05    <vadim@vk.crocodile.org>

	* Firewall.cpp (duplicate): Method Firewall::duplicate replaces
	references to the firewall, its interfaces and well as IPv4 and
	physical addresses of the interfaces in all rule sets with
	references to the copies of corresponding objects. Now firewall
	created from another one using 'duplicate' does not reference
	interfaces or addresses that belong to the original firewall
	object. 

2004-04-24    <vadim@vk.crocodile.org>

	* libfwbuilder-config.h.win32: removed support and therefore a
	dependency on openssl in the code compiled on windows.

2004-04-12    <vadim@vk.crocodile.org>

	* FWObject.cpp (duplicate): fixed a bug that prevented copying of
	the database into another database object using method 'duplicate'
	if one or more subtrees were read-only. Need to add an object to
	the tree before calling duplicate (method isReadOnly checks flag
	'init' in the tree root, so if an object has not been added to the
	tree, this check can not be done and read-only object causes
	'duplicate' to throw an exception).

2004-04-10    <vadim@vk.crocodile.org>

	* FWObjectDatabase.cpp (merge): implemented conflict resolution
	for the object tree merge operation. Uses external predicate class
	to hand control over to the user who should make a decision which
	copy of the object to use. Typically this predicate should show a
	dialog with information for user to chose from.

2004-04-06    <vadim@vk.crocodile.org>

	* FWObject.cpp (operator++): implemented a global tree iterator
	class 'tree_iterator'. This class can be used to walk the whole
	tree.

2004-04-04    <vadim@vk.crocodile.org>

	* FWObjectDatabase.cpp (merge): implemented tree merge
	function. It adds objects that are not present in the tree and
	skips those that are already there. Only object IDs are
	compared. It does not resolve conflicts in a situation when a new
	object has the same Id as one of the old ones but some of its
	attributes are different. In this case it will assume the old
	object is the same as the new one and will skip it. Practically
	this means that if someone modified standard object instead of
	making a copy of it in fwbuilder 1, then the changes will be lost
	when data file is merged with a standard object tree.

2004-04-03    <vadim@vk.crocodile.org>

	* FWObjectDatabase.cpp (exportSubtree): implemented subtree
	export. This method creates new FWObjectDatabase object and copies
	all objects from an object given as a parameter down the tree. It
	also scans for references to objects that do not belong to this
	subtree and creates relevant subtrees to ensure that the whole
	tree is consistent and references never point at non-existent
	objects.

2004-04-01    <vadim@vk.crocodile.org>

	* Resources.cpp (getInstaller): added method Resources::getInstaller()

2004-03-28    <vadim@vk.crocodile.org>

	* FWObjectDatabase_1.0.2.xslt: fixed bug that appeared only when
	used with libxml2 2.6.6 and libxslt 1.0.33 - '*Group' elements
	were not converted properly (losing all child elements). It worked
	on RH 9 with libxml2 2.5.4 and libxslt 1.0.27. Fix tested with
	libxml2 2.6.6 and libxslt 1.0.33 on Fedora C1


2004-03-26    <vadim@vk.crocodile.org>

	* changed file names and target directories as follows:

	- include files are installed in
	${prefix}/include/fwb-2.0/fwbuilder and
	${prefix}/include/fwb-2.0/fwcompiler

	- libraries are named libfwbuilder-2.0.so.6.0.0 and
	libfwcompiler-2.0.so.6.0.0

	 - DTD and migration scripts are installed in
	 ${prefix}/share/libfwbuilder-2.0/

	This should allow us to keep both old and new API on the same
	machine. These changes are done only for Unix installations.
	
2004-03-25    <vadim@vk.crocodile.org>

	* Tools.cpp (init): path for the directory where DTD is installed
	is now passed to API as a parameter to the method
	FWBObjectDatabase::load. There were too many problems with
	guessing where it is installed on different platforms. On Unix it
	is always installed in the absolute path which is encoded in
	LIBFWBUILDER_TEMPLATE_DIR macro defined in
	libfwbuilder-config.h. On Mac and windows it is installed in the
	subdirectory off the directory where GUI and compiler binaries are
	installed. There is no way we can know what this directory is
	inside API, so it should be passed from the GUI or compiler as a
	parameter. It was simpler to unify the approach and make it so it
	is always passed to the API from outside.

2004-03-23    <vadim@vk.crocodile.org>

	* FWObjectDatabase_1.0.2.xslt: migration makes 'Standard' tree read-only

2004-03-22    <vadim@vk.crocodile.org>

	* fwbuilder.dtd.in: read-only attribute is now part of DTD and is
	stored in the file. This allows us to lock down parts of the tree
	(e.g. 'Standard').

2004-03-13    <vadim@vk.crocodile.org>

	* qmake.inc.in: qmake-based build

2004-03-10    <vadim@vk.crocodile.org>

	* manifest.cpp (save): applied patch sent by Carlo Wood needed to
	compile with g++ 3.5

2004-02-08  Vadim Zaliva  <lord@crocodile.org>

	* libfwbuilder.info.in (Package): fink .info file tested to 
	work with MacOS X 10.3, fink package manager version: 0.17.4
	and fink distribution version: 0.6.2.cvs
	
2004-02-28    <vadim@vk.crocodile.org>

	* FWObject.cpp (setReadOnly): added a flag that marks an object
	and the whole subtree under it as read-only. All operations that
	modify objects check this flag and throw an expcetion if an
	attempt to modify read-only object is made.

2004-02-23    <vadim@vk.crocodile.org>

	* FWObjectDatabase.cpp: moved RCS classes to the GUI. This allows
	me to use portable functions provided by QT to call external
	programs (co, ci, rlog etc).

2004-02-22    <vadim@vk.crocodile.org>

	* FWObjectDatabase.cpp (coFile): basic integration with RCS.
	TODO: reimplement using exec(3) instead of system(3)

2004-02-08    <vadim@vk.crocodile.org>

	* fwbuilder.dtd.in (<!ENTITY % STD_ATTRIBUTES '): removed
	attribute 'library'; libraries are now child elements of
	FWObjectDatabase.

	* FWObject.cpp (getLibrary): this method returns the name of the
	library 'this' belongs to. It scans objects in the tree starting
	from 'this', climbing up from 'this' to its parent and so on,
	looking for an object of the type 'Library', then returns its
	name.

2004-01-20    <vadim@vk.crocodile.org>

	* FWObject.cpp (findObjectByName): added (non-virtual public)
	method findObjectByName. This method find a child object of a
	given type with given name.

2004-01-18    <vadim@vk.crocodile.org>

	* Library.h (class Library): this class supports new element
	"Library"

	* FWObjectDatabase_1.0.2.xslt: this transformation converts data
	file v1.0.2 to the new format where libraries are elements rather
	than attributes (v2.0.0)

2004-01-17    <vadim@vk.crocodile.org>

	* fwbuilder.dtd.in: DTD change: permitted element IPv4 to be a
	child of ObjectGroup. This does not require any changes in
	existing data files.

	* fwbuilder.dtd.in: DTD change: added element "Library"

2004-01-10    <vadim@vk.crocodile.org>

	* libfwbuilder-config.in (the_flags): added parameter "--includepath"
	to script libfwbuilder-config. This parameter is used to generate
	variables used in QT project files.

2003-12-30    <vadim@vk.crocodile.org>

	* XMLTools.cc (setDTD): Bug #868278: "fwbuilder GUI crashes while
	saving data to file on FreeBSD".  The crash happens in the DTD
	validation routine xmlValidateDocument when fwbuilder is working
	with libxml2 v2.6.4. Tests seem to rule out bug in libxml2 (I used
	their example program "tree2.c" and added similar fragment for
	validation, it worked), so it must be something in our code. I
	can't seem to find the problem though.  We recreate the tree from
	the objects in the memory, so doing validation here is mostly a
	double check. It should be relatively safe to just skip validation
	until I figure out what's wrong with it.

2003-12-27    <vadim@vk.crocodile.org>

	* taking into account different directory separation 
	characters on unix and win32

	* Resources can now be loaded from the directory defined 
	by the relative path (assumed to be relative to the directory 
	the binary was launched from)

2003-12-30    <vadim@vk.crocodile.org>

	* XMLTools.cc (setDTD): Bug #868278: "fwbuilder GUI crashes while
	saving data to file on FreeBSD".  The crash happens in the DTD
	validation routine xmlValidateDocument when fwbuilder is working
	with libxml2 v2.6.4. Tests seem to rule out bug in libxml2 (I used
	their example program "tree2.c" and added similar fragment for
	validation, it worked), so it must be something in our code. I
	can't seem to find the problem though.  We recreate the tree from
	the objects in the memory, so doing validation here is mostly a
	double check. It should be relatively safe to just skip validation
	until I figure out what's wrong with it.

	* XMLTools.hh: properly using xmlFree to free blocks of memory
	allocated by libxml2

2003-12-26    <vadim@vk.crocodile.org>

	* Compiler.cc (normalizePortRange): fixed a bug ('==' used instead of '=')
	Among other things, compiler failed to merge rules with tcp or udp 
	services using "multiport" module in ipt because of this bug

2003-12-26    <vadim@vk.crocodile.org>

	* Makefile.in (FLIST): refactored xslt transformation scripts in
	migration. Now version number is a part of the script name rather
	than a directory; it is more convenient to deal with scripts named
	this way in the VC++ projects.

	* updated VC++ project files added autoupgrade XSLT scripts to 
	the projects on windows, DTD is installed in the same dir where 
	libraries are created

	* porting fwcompiler to win32. 

2003-12-25    <vadim@vk.crocodile.org>

	* using xmlFree to free memory allocated inside libxml by
	  xmlGetProp and friends, however since declaration of xmlFree
	  is commented out in windows version of libxml (as of Dec 20003,
	  v 2.6.3), we do not free this memory on windows :-(
	  TODO: check why xmlFree is not available in windows version

2003-12-24    <vadim@vk.crocodile.org>

	* renamed all .cc files to .cpp and all .hh files to .h
	* added Visual C++ project files (.dsw and .dsp)
	* added directory src/test and couple of tests
	* made changes in fwbuilder to port it to win32.
	* platform dependent functions moved to Tools.cpp (cxx_sleep,
	cxx_strtok_r etc)
	

2003-12-22    <vadim@vk.crocodile.org>

	* got rid of GLIB everywhere, now using POSIX threads functions
	directly.

	* configure.in: removed check for GLIB, added check for pthreads
	

	***************************************************************
	* VERSION (RELEASE_NUM): Created branch "fwb2", set package   *
	* version to 2.0.0 and library so version to 6.0.0            *
	***************************************************************

2003-12-18    <vadim@vk.crocodile.org>

	* libfwbuilder.info.in: fixed bug #862642: "fink packages do not
	work for 10.3". Changes have been made to the fink .info files to
	make libfwbuilder and fwbuilder build on Panther.

	* libfwbuilder.spec.in: fixed bug #855896: "do not quote RPM Group
	names". Group names in RPM .spec files should not be in quotes.

	* VERSION (RELEASE_NUM): set version to v1.0.2-2

2003-11-23    <vadim@vk.crocodile.org>

	* VERSION (LIBFWBUILDER_AGE): v1.0.2 released

2003-11-11    <vadim@vk.crocodile.org>

	* XMLTools.cc (loadAndParseFile): fixed bug #840427: Problems with
	libxml2. The GUI won't start if libxml2 v 2.6.2 was installed, the
	error looked like this:

	I/O warning : failed to load external entity "/resources.xml"

	Function xmlParseFile broke in libxml2 v2.6.2 so I had to switch
	to xmlParseMemory.

2003-11-09    <vadim@vk.crocodile.org>

	* IPAddress.cc (_convert_range_to_networks): fixed several bugs

	* Compiler.cc (_expandAddressRanges): implemented algorithm that
	converts address range into a set of networks rather than N
	hosts. Using method libfwbuilder::convertAddressRange.

2003-09-20  Vadim Kurland  <vadim@vk.crocodile.org>

	* set version to 1.0.2. There are no changes in the code (so far)
	but version change allows me to insert some standard objects into
	existing user's object files. In particular, I need to add
	standard objects "broadcast" and "old-broadcast" that are used by
	"help me build policy" druid for rules permitting DHCP.

2003-09-02  Vadim Kurland  <vadim@vk.crocodile.org>

	* 1.0.1 released
	
2003-07-21  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (isRecursiveGroup): fixed bug #774834: compiler
	hangs on a group referencing itself. If a group references itself,
	policy compilers used to hang or dump core.

2003-07-19  Vadim Kurland  <vadim@vk.crocodile.org>

	* snmp.cc (fetchInterfaces): fixed bug #774462: wrong interface
	made external if fw was discovered by the crawler.

	* snmp.cc (fetchRoutingTable): fixed bug #773271: program crashes
	while doing network object discovery. 

2003-07-05  Vadim Kurland  <vadim@vk.crocodile.org>

	* XMLTools.cc: added method transformFileToFile that applies XSLT
	transformation to a file and stores the result in another
	file. This method is currently used for printing. This is done in
	order to fix printing on RH90. Somehow method
	transformDocumentToFile, when used in combination with
	FWObjectDatabase::saveXML, did not work on RH90. Somehow it did
	not load DTD properly, because of that XSLT transformation did not
	work (many things broke, in particular XSLT function id() did not
	work). Saving to a temporary file with FWObjectDatabase::saveFile
	and then applying transformation to this file in the new method
	worked.


2003-06-29  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler_ops.cc (operator==): need to take interfaces into
	account when comparing Address objects. Dynamic and unnumbered
	interfaces need to be compared by names (since method getAddress
	of different dynamic interfaces will return the same IPAddress
	object)

2003-06-20  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (_expandAddressRanges): fixed bug #742136: "iptables
	compiler hangs". All compilers hang if address range object with
	range start and end equal to 255.255.255.255 was used in the
	policy rule.

	* dns.cc (getHostByName): fixed bug #753946: "DNS lookup
	crash". DNS lookup of non-exsiting name caused crash on SuSE 8.2

	* set version to 1.0.1
	
2003-05-21  Vadim Kurland  <vadim@vk.crocodile.org>

	* v 1.0.0 released
	
2003-05-13  Vadim Kurland  <vadim@vk.crocodile.org>

	* IPAddress.cc (IPRoute): fixed bug (no number) improper use of
	the constructor Interface(const Interface *iface) in place of the
	copying constructor Interface(const Interface &iface)

	* snmp.cc (fetchRoutingTable): fixed bug (no number): snmp crawler
	did not pick external interface properly (external interface is
	determined by looking for a defaul route).

2003-04-24  Vadim Kurland  <vadim@vk.crocodile.org>

	* configure.in: improvements in the build process. Script
	configure eliminates duplicate CFLAGS and LIBS options and
	libraries and makes compile lines shorter.

2003-04-13  Vadim Kurland  <vadim@vk.crocodile.org>

	* configure.in: Set version to 1.0.0, release "RC1"

2003-04-12  Vadim Kurland  <vadim@vk.crocodile.org>

	* snmp.cc (fetchArpTable): fixed bug where this method failed to
	get MAC address for known IP address if net-snmp v5 was used to
	compile and link the program.

2003-04-05  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (complexMatch): made complexMatch properly match if
	the second argument is interface.

2003-04-04  Vadim Kurland  <vadim@vk.crocodile.org>

	* new .spec file for unified RPM build
	
2003-04-02  Vadim Kurland  <vadim@vk.crocodile.org>

	* configure.in: fixed bug #713582: Cannot build libfwbuilder from
	rpm src file on RH 8.0. Needed better way to check for presence of
	net-snmp or ucd-snmp libraries. RH 8.0 comes with both in a
	package net-snmp; script should be able to differentiate them and
	pick net-snmp. Script net-snmp-config is now present, using it for
	--libs flags.

2003-03-28  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (catchUnnumberedIfaceInRE): this method is used in
	rule processor checkForUnnumbered for all policy and nat
	compilers. It checks if unnumbered interface is used in a given
	rule element. Returns true if such interface was found.

2003-03-26  Vadim Kurland  <vadim@vk.crocodile.org>

	* Makefile.in (CXXLINK): linking libfwbuilder.so and
	libfwcompiler.so with supporting libraries (libsnmp, libxml2,
	libxslt). This should help automatically set dependencies on the
	package.

2003-03-19  Vadim Kurland  <vadim@vk.crocodile.org>

	* NATCompiler.cc (processNext): added new NAT rule type SDNAT for
	rules that translate both source and destination.

2003-03-16  Vadim Kurland  <vadim@vk.crocodile.org>

	* XMLTools.cc (loadFile): better text for the xml file
	auto-upgrade warning dialog.

	* NATCompiler.cc (processNext): renamed processor addressRanges to
	ExpandAddressRanges

2003-03-13  Vadim Kurland  <vadim@vk.crocodile.org>
	
	* rearranged top level Makefile so I can build tar file without
	  having to run configure first

2003-03-09  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.hh: added bool fwcompiler::operator==(const Interval &o1,const Interval &o2);

2003-03-03  Vadim Kurland  <vadim@vk.crocodile.org>

	* configure.in: platform and os resource files moved back to fwbuilder

2003-03-02  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.hh: converted everywhere from RuleElement::getFirst to
	Compiler::getFirstSrc , Compiler::getFirstDst etc. This helps
	improveme compile speed for all platforms, sometimes significantly.
	
	* FWObject.cc (getById): API cleanup: got rid of the third
	parameter for getById (parameter was called 'dereference'). Had to
	make minor changes in the GUI to accomodate this.

2003-03-01  Vadim Kurland  <vadim@vk.crocodile.org>

	* configure.in: renamed var. HAVE_LIBBIND to HAVE_GOODLIBRESOLVE
	The new name better reflects its meaning. Removed checks for
	libdns and libisc, we don't seem to use these libraries anymore.
	Improved detection whether libresolv has advanced functions for
	zone transfers and error parsing.

2003-02-27  Vadim Kurland  <vadim@vk.crocodile.org>

	* fwbuilder.dtd, Rule.cc (setAction): added action 'Accounting'

2003-02-17  Vadim Kurland  <vadim@vk.crocodile.org>

	* macosx.xml.in: Added resource files for Mac OS X and ipfw

2003-01-21  Vadim Kurland  <vadim@vk.crocodile.org>

	* Makefile.in (OS_DATAFILES): moved files with platform and os
	descriptions from the GUI to the API

2003-01-19  Vadim Kurland  <vadim@vk.crocodile.org>

	* BackgroundOp.cc (start_operation): flag stop_program is now
	created as a dyhamic variable so that it can be checked even if
	BackgroundOp object has been destroyed while run_impls was stuck
	in a system call. See comment in the code. This fixes bug #637154:
	seg fault on snmp get / undo

2003-01-12  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (findAddressFor): using const arguments

2003-01-11  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (findAddressFor): added method Compiler::findAddressFor

2003-01-02  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (_expandInterface): virtual method that can be
	reimplemented in derived compiler class to properly deal with
	physAddress objects (see PolicyCompiler_ipt)

2002-12-28  Vadim Kurland  <vadim@vk.crocodile.org>

	* snmp.cc (fetchInterfaces): fixed bug#617904: snmp does not get
	multiple addresses. The crawler and the tool that discovers host's
	interfaces using SNMP finds and creates appropriate IPv4 objects
	for interfaces that have multiple addresses.

2002-12-25  Vadim Kurland  <vadim@vk.crocodile.org>

	* physAddress.hh (class physAddress): added XML element and
	libfwbuilder class to represent hardware (physical) address. This
	class works similarly to IPv4; it can only be a child of
	Interface.


2002-12-24  Vadim Kurland  <vadim@vk.crocodile.org>

	* Interface.cc: Added support for unnumbered interfaces (working on
	feature req. #546881 "Unnumbered Interfaces cause bad compile" and
	some bug reports.)

	* set version to 0.10.13
	
2002-12-23  Vadim Kurland  <vadim@vk.crocodile.org>

	* NATCompiler.cc (processNext): fixed bug #657195: NAT port
	mapping bug.
	* configure.in: set version to 0.10.12-3 (to avoid having to
	create temporary xslt transofrmation for data file upgrade. this
	transformation will be added later we support for MAC address
	object is introduced; version will be bumped up to 0.10.13 then).

2002-12-17  Vadim Kurland  <vadim@vk.crocodile.org>

	* 0.10.12 released
	
2002-12-16  Vadim Kurland  <vadim@vk.crocodile.org>

	* FWObjectDatabase.xslt: fixed bug #654505: 1.0.8 won't load file
	from 1.0.6

	* using attribute 'exclude-result-prefixes' in xsl:stylesheet to
	fix the problem with extra namespace declaration added to the
	FWObjectDatabase element if upgrade of the data file was done
	using latest versions of libxml2 and libxslt. Added this attrbite
	to FWObjectDatabase.xslt transformation for upgrades _from_ versions
	0.10.9, 0.10.10 and 0.10.11


2002-12-13  Vadim Kurland  <vadim@vk.crocodile.org>

	* Rule.hh (class Rule): code cleanup - getting rid of
	getStr/setStr in compilers. Added few variables used in compilers.

2002-12-02  Vadim Kurland  <vadim@vk.crocodile.org>

	* Rule.cc (duplicate): code cleanup: keeping NAT rule type and
	interface_id in a private class member variables


2002-12-01  Vadim Kurland  <vadim@vk.crocodile.org>

	* NATCompiler.cc (processNext): added basic support for Load
	Balancing rules and some new rule types in both NAT and Policy.

2002-11-28  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.hh: added new rule processor emptyGroupsInRE that finds
	and eliminates empty groups in rule elements. PolicyCompiler and
	NATCompiler both inherit from this processor and create their own
	sets of processors that check for empty groups in particular
	rule elemetns (like in Src, Dst, Srv, OSrc etc.)

	* Rule.hh (class Rule): added members and methods to class Rule to
	support operations specific to fwcompiler classes. Rules can have
	boolean flags "fallback", "hidden" and may have a label. These
	parameters are not being stored in XML file. Had to add virtual
	method duplicate to make sure these parameters get copied when
	rules are duplicated.

2002-11-24  Vadim Kurland  <vadim@vk.crocodile.org>

	* fwbuilder.dtd.in (TCPService): added attributes for TCP flag
	masks in TCPService element.

	* TCPService.hh (class TCPService): added support for TCP flag
	masks. Rearranged methods dealing with flags and masks.

	* Compiler_ops.cc (operator<=): commented out operator<= for both
	Address and Service - to be removed after some additional testing.

	* Compiler.hh (checkForShading): renamed operator< to
	checkForShading, both for Address and Service. Operator== stays.

	* PolicyCompiler.cc (checkForShading): separated checkForShading and
	cmpRules methods in both PolicyCompiler and NATCompiler

2002-11-21  Vadim Kurland  <vadim@vk.crocodile.org>

	* NATCompiler.cc (processNext): fix for bug #642161: problem with
	NAT rules that translate port numbers but do not change addresses.

2002-11-16  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (complexMatch): made changes to fix bug #637694:
	bridge enabled / management. Background: if firewall object is
	used in destination of the rule of the bridging firewall, chain
	needs to be still INPUT. Changes in complexMatch allow calling
	method to pass flags to control whether complexMatch would match
	on broadcasts and multicasts.

2002-11-15  Vadim Kurland  <vadim@vk.crocodile.org>

	* PolicyCompiler.cc (cmpRules): fixed bug with rule shading
	detection: rules are considered not shading each other if any rule
	element has negation turned on. It is too difficult to correctly
	detect shading if there is negation somewhere.

2002-11-14  Vadim Kurland  <vadim@vk.crocodile.org>

	* Management.cc (toXML): fixed bug #635849: old and annoying
	problem where GUI detected non-existent change in the data tree
	once the user opened firewall object or any of the policy objects
	(InterfacePolicy, Policy or NAT). It then asked if the user wants
	to save the data before exiting the GUI.

2002-10-29  Vadim Kurland  <vadim@vk.crocodile.org>

        * 0.10.11 released

2002-10-24  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler_ops.cc (operator==): taking TCP flags into account
	while comparing policy rule objects

2002-10-21  Vadim Kurland  <vadim@vk.crocodile.org>

	* PolicyCompiler.cc (findZeroAddress): fixed bug #626238:
	0.0.0.0/8 not detected correctly

2002-10-20  Vadim Kurland  <vadim@vk.crocodile.org>

	* FWObjectDatabase.xslt: setting FirewallOptions/Option with name
	'check_shading' and value 'true' for all firewalls : rule shading
	check is ON by default as of this version.

	* Compiler.cc (Begin::processNext): compilers now work on a copy
	of rule set. This allows for multiple passes to be created by
	simply creating another set of rule processors and calling
	runRuleProcessors again.

2002-10-19  Vadim Kurland  <vadim@vk.crocodile.org>

	* snmp.cc (fetchInterfaces) : now works with net-snmp library

2002-10-18  Vadim Kurland  <vadim@vk.crocodile.org>

	* FWObject.cc (shallowDuplicate): new method: copies attributes of
	an object given as an argument, but does not change children.

2002-10-13  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.hh: output is now stringstream (so we can read and
	write to it)

2002-09-30  Vadim Kurland  <vadim@vk.crocodile.org>

	* release 0.10.10

2002-09-24  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (complexMatch): this method now scans virtual
	addresses on interfaces; it also avoid false positives with
	objects with multiple interfaces, where one interface matches.

2002-09-23  Vadim Kurland  <vadim@vk.crocodile.org>

	* PolicyCompiler.cc (processNext): added generic rule processor to
	eliminate duplicates in rule elements.

	* Compiler.cc (createRuleLabel): code cleanup in createRuleLabel

2002-09-21  Vadim Kurland  <vadim@vk.crocodile.org>

	* IPAddress.cc (to32BitInt): applied patch #612667 that fixes bug
	#571882 - address arithmetics broken on SPARC

2002-09-20  Vadim Kurland  <vadim@vk.crocodile.org>

	* XMLTools.cc (cleanForNVTASCII): this method makes sure all
	characters in str conform to NVT ASCII coding (codes are
	<127). This must be true for example for sysDesc MIB variables.

	* dns.cc (run_impl): fixed bug in DNS_bulkBackResolve_query which
	happened if there were more threads than IPs to be resolved.

	* PolicyCompiler.cc (checkForZeroAddr): better diagnostics message

2002-09-19  Vadim Kurland  <vadim@vk.crocodile.org>

	* IPAddress.cc (_convert_range_to_networks): fixed bug where this
	method cycled indefinitely if input data were start=N.N.N.0 and
	end=N.N.N.255

	* PolicyCompiler.cc (checkForZeroAddr): in addition for checking
	for objects with address 0.0.0.0, this rule processor also checks
	for hosts with no interfaces.

2002-09-15  Vadim Kurland  <vadim@vk.crocodile.org>

	* PolicyCompiler.cc (checkForZeroAddr): this processor checks for
	host and network objects with address 0.0.0.0, which is equivalent
	to 'any'. This is an error, compilation is aborted. This fixes bug
	#607380: host with no IP creates any rule.

	* Compiler.cc (complexMatch): fixed bug #605944: multicast
	addresses in FORWARD chain

	* XMLTools.cc (saveFile): setting utf-8 encoding on saved xml
	files.
	* XMLTools.cc (cleanForUTF8): added method that cleans up
	character string, replacing characters that do not conform with
	UTF8 encoding with '?'


2002-09-10  Vadim Kurland  <vadim@vk.crocodile.org>

	* version 0.10.9 released
	
2002-09-08  Vadim Kurland  <vadim@vk.crocodile.org>

	* snmp.cc (walk): using function snprint_objid from libsnmp. Added
	corresponding check to configure.in. Thanks to
	mithrandir@alwaysonline.net.au   for patch.

	* minor code cleanup. Changes to configure and Makefiles to
	support compile and linking with STLport
	
2002-09-07  Vadim Kurland  <vadim@vk.crocodile.org>

        * Makefile.in (INSTALL_STRIP): controlling build options via
        env. var FWB_BUILD_OPTIONS. Currently provides control for "-g"
        compiler/linker option and "-s" installer option.

	* Compiler.cc (getCompiledScript): fixed bug#606047: resetting
	position in the ostringstream stream 'output' so it can be used
	again .

	* Compiler.cc (findInterfaceFor): deep check to make sure we
	compare against all addresses of each interface of the firewall

2002-09-02  Vadim Kurland  <vadim@vk.crocodile.org>

	* configure.in: set library so version number to 3.0.0
	* removed fwbd from src/Makefile.in

2002-08-31  Vadim Kurland  <vadim@vk.crocodile.org>

	* Resources.hh (class Resources): class Resources moved from
	fwbuilder to libfwbuilder

2002-08-28  Vadim Kurland  <vadim@vk.crocodile.org>

	* configure.in: detecting lwres. configure parameter '--with-lwres'

	* Set Copyright to NetCitadel, LLC

	* configure.in: checking for /usr/include/lwres/netdb.h which
	comes with bind9

2002-08-26  Vadim Kurland  <vadim@vk.crocodile.org>

	* FWObjectDatabase.hh (class FWObjectDatabase): moved method
	findFirewallByName from class Compiler to class FWObjectDatabase

	* libfwbuilder-config.in (the_flags): script libfwbuilder-config
	returns different combinations of libraries if called with
	parameter "fwbuilder" or "fwcompiler"

2002-08-24  Vadim Kurland  <vadim@vk.crocodile.org>

	* NATCompiler.cc (ExpandMultipleAddresses): added case for NONAT

	* merged branch virt_iface : suport for virtual interfaces
	
2002-08-23  Vadim Kurland  <vadim@vk.crocodile.org>

	* Host.cc (getAddress): Host::getAddress returns address of
	management interface if there is one, or address of the last
	interface, or 0.0.0.0 if there are no interfaces

2002-08-22  Vadim Kurland  <vadim@vk.crocodile.org>

	* Host.hh (getManagementAddress): this method finds management
	interface and copies its address into Management child object and
	returns it.

	* Interface.hh (isManagement): added methods to manipulate
	attribute "mgmt"

	* fwbuilder.dtd.in (TODO): added attribute "mgmt" to element
	Interface. This attribute marks interface as "management"
	interface, which is the one fwbd daemon is listening on and the
	one to which we can run snmp queries etc.

2002-08-21  Vadim Kurland  <vadim@vk.crocodile.org>

	* Interface.cc: added method setDyn

	* XML elements Host and Firewall: attribute 
	"address" is no longer REQUIRED.  IP Address for these elements
	should be defined in a child element Interface


2002-08-19  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (complexMatch): fixed bug #597418
	(compiler placed code into chain OUTPUT if MAC address match was
	requested for a Host with dynamic interface)

2002-08-17  Vadim Kurland  <vadim@vk.crocodile.org>

	* FWObjectDatabase.hh (class FWObjectDatabase): moved most of the
	standard IDs to FWObjectDatabaseGUI class in fwbuilder.

2002-08-16  Vadim Kurland  <vadim@vk.crocodile.org>

	* IPAddress.cc (isMulticast): fixed bug #554286: crawler discovered
	multicast addresses and created objects

2002-08-13  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler_ops.cc (cmpRules): fixed bug #594656: Outbound rule
	shades an inbound rule. Now taking direction into account when
	comparing policy rules.

2002-08-12  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (_expand_addr_recursive): expanding objects with
	multiple addresses recursively, so that we can get all IPv4
	objects and all interfaces

2002-08-09  Vadim Kurland  <vadim@vk.crocodile.org>

	* working in a branch virt_iface
	
	* configure.in: set version to 0.10.9

	* IPv4.hh (class IPv4): created class IPv4

	* FWObjectDatabase.xslt: created auto-upgrade transformation, that
	adds child element IPv4 to Interface and reassigns attributes
	"address" and "netmask" from Interface to IPv4

2002-08-01  Vadim Kurland  <vadim@vk.crocodile.org>

	* v0.10.8 released

2002-07-29  Vadim Kurland  <vadim@vk.crocodile.org>

	* FWObject.cc (fromXML): fixed memory leak that occured because we
	weren't free-ing memory buffers returned by xmlGetProp and
	xmlGetNodeContent

2002-07-27  Vadim Kurland  <vadim@vk.crocodile.org>

	* XMLTools.hh (class XMLTools): made XMLTools::version_compare public
	method

2002-07-26  Vadim Kurland  <vadim@vk.crocodile.org>

	* libfwbuilder-config.in (LIBFWBUILDER_LIBDIR): do not report
	CFLAGS and LIBS for libsigc++ 

	* BackgroundOp.hh (class BackgroundOp ): class BackgroundOp is not
	derived from SigC::Object anymore

2002-07-20  Vadim Kurland  <vadim@vk.crocodile.org>

	* Rule.cc (PolicyRule): PolicyRule constructor _does not_ turn
	logging on anymore. This should be done in the GUI

2002-07-18  Vadim Kurland  <vadim@vk.crocodile.org>

	* Firewall.cc (replaceRefToFirewall): fixed bug #580027:
	Firewall::duplicate replaces references to the old firewall with
	references to the new one in policy and NAT rules

2002-07-14  Vadim Kurland  <vadim@vk.crocodile.org>

	* dns.cc:
	* BackgroundOp.cc: initializing tattr from constructor and
	destroying it from destructor of both classes

	* configure.in: a workaround for an algorithm for detection of
	pthread library flags on OpenBSD (glib-config returns flags for
	/usr/local/lib/pth/libpthread which is broken, we should be really
	using libc_r instead)

	* BackgroundOp.cc (start_operation): processing return codes from
	pthread_create

	* dns.hh (class DNS_bulkBackResolve_query): 
	* BackgroundOp.cc (start_operation): tattr is now member of the
	class

2002-07-13  Vadim Zaliva  <lord@crocodile.org>

	* dns.cc (run_impl): 
	* BackgroundOp.cc (start_operation): setting detachable
	attribute in pthread_create to avoid execution problem
	OpenBSD.

2002-07-04  Vadim Kurland  <vadim@vk.crocodile.org>

	* autogen.sh: added script autogen.sh - this script regenerates
	all critical scripts and config files (aclocal.m4, ltmain.sh and
	ltconfig, configure etc) using aclocal, automake and libtool. This
	needs to be done to properly build on different platforms.

2002-06-27  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (abort): method Compiler::abort modified. Now it has
	dual function: if compiler is in testing mode
	(test_mode==true) it prints error message and returns, otherwise
	it throws exception with error message. Test mode can be activated
	using method Compiler::setTestMode()

2002-06-25  Vadim Kurland  <vadim@vk.crocodile.org>

	* NATCompiler.cc (processNext): added processor classifyNATRule
	that decides on NAT rule type (code is based on variant developed
	for iptables as the most comprehensive one)

	* Compiler.cc (processNext): added rule processor
	"createNewCompilerPass" 

	* set version to 0.10.8

2002-06-24  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (processNext): added universal rule processor
	splitIfRuleElementMatchesFW that splits rule if one of the objects
	in given rule element is firewall. Classes PolicyCompiler and
	NATCompiler derive from this base class to create rule processors
	that do this for specific rule elements.

2002-06-22  Vadim Kurland  <vadim@vk.crocodile.org>

	* Firewall..cc, Host.cc: removed methods Firewall::setDefaults
	and Host::setDefaults. Now setting default properties and default
	options in the GUI using resources

2002-06-21  Vadim Kurland  <vadim@vk.crocodile.org>

	* Firewall.cc (setDefaults): added code setting default values for
	firewall options for PIX

2002-06-20  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (_expandAddressRanges): fixed bugs #571990 and #573038 -
	AddressRange overrun for ranges that end with IP address ending
	with 255

2002-06-16  Vadim Kurland  <vadim@vk.crocodile.org>

	* version 0.10.7 released
	
2002-06-14  Vadim Zaliva  <lord@crocodile.org>

	* Tools.cc (init): initializing threads and XML tools.

2002-06-03  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (complexMatch): fixed bug #564037: compiler should
	place rules with destination address 255.255.255.255 into INPUT
	chain

2002-06-02  Vadim Kurland  <vadim@vk.crocodile.org>

	* Set version to 0.10.7
	
	* PolicyCompiler.cc (processNext): added rule processor that
	converts policy rule to atomic rules by splitting it on time
	interval rule element.

2002-05-25  Vadim Kurland  <vadim@vk.crocodile.org>

	* FWObject.cc (add): modified FWObject::add, added the second
	parameter that controls whether method will validate object to be
	added. Validation is on by default but can be turned off if
	needed.

2002-05-23  Vadim Kurland  <vadim@vk.crocodile.org>

	* PolicyCompiler.hh: added few standard rule processors for
	Policyrule: 
	  o ExpandGroups
	  o ExpandMultipleAddresses
	  o addressRanges
	  o splitServices
	  o separateTCPWithFlags
	  o verifyCustomServices
	  o ConvertToAtomicForAddresses
	  o ConvertToAtomic
	  o findMoreGeneralRule
	  o DetectShading

	* NATCompiler.hh: added several rule processors for NATRule:
          o ExpandGroups
	  o ExpandMultipleAddresses
	  o addressRanges
          o ConvertToAtomicForAddresses
	  o ConvertToAtomic

	* Compiler.hh: added several type-independent rule processors:
	  o Begin
	  o printTotalNumberOfRules
	  o simplePrintProgress
	  o Debug

	* RuleProcessor.hh (fwcompiler ): class BasicRuleProcessor is
	base class for the family of rule processors

	* PolicyRuleProcessor , NATRuleProcessor: these classes inherit
	all methods from BasicRuleProcessor and add proper type conversion

2002-05-20  Vadim Zaliva  <lord@crocodile.org>

	* RuleProcessor.hh (fwcompiler ): new processing framework
	based on chained processor. Base class.

2002-05-18  Vadim Kurland  <vadim@vk.crocodile.org>

	* Makefile.in (INSTALL_SCRIPT): fixed bug #556840 (shell script
	libfwbuilder-config should be installed without "-s" command
	line option to install)

	* Compiler.cc (findFirewallByName): added function that finds
	firewall by name

2002-05-17  Vadim Kurland  <vadim@vk.crocodile.org>

	* PolicyCompiler.cc (find_more_general_rule): better algorithm
	to find more general rule. Reimplemented DetectShading

	* Compiler_ops.cc (cmpRules): new method to compare rules.
	* Compiler_ops.cc (operator<):  improvements in comparison of
	service objects

	* FWObject.hh (class FWObject):
	* TCPService.hh (class TCPService): made some methods "const"

	* Compiler.cc (debugRule): moved method debugRule to the base
	class Compiler

2002-05-16  Vadim Kurland  <vadim@vk.crocodile.org>

	* PolicyCompiler.cc (for_each_const_rule): new implementations
	of for_each_rule and for_each_const_rule

	* Compiler.hh (x_any_fun2): using x_any_fun1 and x_any_fun2 to
	call  member functions that process rules in derived classes
	for policy and NAt compilers

2002-05-15  Vadim Kurland  <vadim@vk.crocodile.org>

	* v0.10.6 released
	
2002-05-09  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (findInterfaceFor): method to find interface of
	one object (usually firewall) that is connected to the same
	subnet as the second object

	* PolicyCompiler.cc (find_more_general_rule): using strict
	comparison ('<' instead of '<=') to find more general rule

2002-05-08    <vadim@vk.crocodile.org>

	* FWObject.cc (destroyChildren): this new method destroys all
	children of this recursively; it ignores reference counter and
	simply deletes everything.

	* FWObject.cc (clearChildren): this method deletes all children of
	this recursively or not (depending on parameter) but checks the
	reference counter and deletes only objects with ref==0

2002-05-03  Vadim Kurland  <vadim@vk.crocodile.org>

	* NATCompiler.hh: 
	* PolicyCompiler.hh: added methods and classes for debugging

	* Compiler.cc (_isMatchingFW): added matching for broadcast addresses

	* IPAddress.cc (getBroadcastAddress): fixed bug (removed extra
	htonl() conversion)

2002-04-27  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (error): now have three methods for warning and error
	messages: warning, error, abort

2002-04-26  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (_isMatchingFW): method returns true if obj is
	firewall, or any child of firewall or its address matches that of
	any firewall's interfaces or address of the firewall object


	* BackgroundOp.cc (BackgroundOp): BackgroundOp creates object of
	class QueueLogger in constructor and deletes it in the
	background_thread, after run_impl returns. Also using SyncFlag
	flag "iamdead" which is protected by mutex to make sure background
	thread won't use object if it was destroyed. With this flag we can
	now delete object of class BackgroundOp any time without having to
	worry about background operation not using it after it has been
	deleted.

	Classes derived from BackgroundOp should check flag
	stop_program_flag using method check_stop after each system call
	in run_impl and should immediately interrupt operation and return
	from run_impl if check_stop throws exception.

2002-04-20    <vadim@vk.crocodile.org>

	* Logger.hh (class Logger): logger can be switched to blackhole
	mode. In this mode logger does not store text sent to it
	and its method Logger::ready always returns false

	* BackgroundOp.cc (start_operation): start_operation creates
	objects of class QueueLogger and returns pointer to it. This
	object is destroyed at the end of the background thread function,
	after it makes sure all the text has been pulled out of the logger
	by foreground thread, or logger has been disconnected.

	* Logger.hh (class QueueLogger): moved class Logger and other
	classes derived from it to a separate module. Added class
	QueueLogger - logger working via internal queue<string>

	* dns.cc (DNS_bulkBackResolve_Thread): assemble the whole string
	before sending it to logger (instead of using locking manipulators
	start and end)

2002-04-19  Vadim Kurland  <vadim@vk.crocodile.org>

	* Compiler.cc (createRuleLabel): nicer rule labels

	* Compiler.cc (normalizePortRange): this method fixes port ranges

	* PolicyCompiler.cc (_expandAddr): routine that replaces
	references to host and firewall objects with references to their
	interfaces again uses all interfaces for firewall.

2002-04-18  Vadim Kurland  <vadim@vk.crocodile.org>

	* PolicyCompiler.cc (operator): rule inspectors splitServices
	and verifyCustomServices moved to the base class PolicyCompiler

	* CustomService.cc: custom service has pseudo-protocol number 65000

2002-04-17  Vadim Kurland  <vadim@vk.crocodile.org>

	* Rule.hh (class NATRule): some new NATRule types, additional methods
	to set and get rule type

2002-04-17    <vadim@vk.crocodile.org>

	* PolicyCompiler.cc (convertToAtomicForAddresses): this processor
	splits composite rule onto bunch of atomic rules by its Src and
	Dst.  It ignores Srv. This processor is used in ipt compiler
	(iptables supports multiple ports in service, so we don't convert
	to atomic rules for service)

	* NATCompiler.cc (convertToAtomicForAddresses): this processor
	splits composite rule onto bunch of atomic rules by its OSrc,ODst,
	TSrc,TDst. It ignores OSrv and TSrv. This processor is used in 
	ipt compiler (iptables supports multiple ports in service, so we don't
	convert to atomic rules for services)
	
	* NATCompiler.cc (expandMultipleAddresses): 
	* PolicyCompiler.cc (expandMultipleAddresses): these methods moved
	to the base classes PolicyCompiler and NATCompiler

	* Compiler.hh: _expandAddressRange : method expands AddressRange
	objects in rule elements. This method is used in both
	PolicyCompiler and NATCompiler

2002-04-15    <vadim@vk.crocodile.org>

	* Compiler.hh: added caching for frequently used objects for all
	compilers

2002-04-11  Vadim Kurland  <vadim@vk.crocodile.org>

	* IPAddress.hh (class IPAddress): added IPAddress::operator guint32()

	* IPAddress.cc (to32BitInt): converted from 
	IPAddress::operator ulong() to guint32 IPAddress::to32BitInt()
	for portability to 64-bit architectures (e.g. Alpha). Used type
	guint32 instead of ulong everywhere

2002-04-09    <vadim@vk.crocodile.org>

	* configure.in: checking for ccache and using it if present

2002-04-08    <vadim@vk.crocodile.org>

	* configure.in: automatic determination whether we have bind library
	(sets HAVE_LIBBIND)

2002-04-07  Vadim Kurland  <vadim@vk.crocodile.org>

	* configure.in: Set package version to 0.10.6, library libtool
	version to 2.0.0

2002-04-06    <vadim@vk.crocodile.org>

	* Compiler.cc (_do_expandGroups): fixed bug #538774: expand groups
	recursively (permits groups within groups)

2002-04-03  Vadim Zaliva  <lord@crocodile.org>

	* FWObject.hh (findByType>): findByType iterator-based method.

2002-03-31  Vadim Zaliva  <lord@crocodile.org>

	* Tools.cc (init): initialize openssl library
	and loading error strings. (Bug #537633).

	* crypto.cc (Key): Key generation progress indicator
	callback. 

2002-03-30  Vadim Zaliva  <lord@crocodile.org>

	* FWObject.hh (FWObject*>): const attribute iterators.
	(FWObject*>): replaced std::vector with std::list.


2002-03-29  Vadim Kurland  <vadim@vk.crocodile.org>

	* Version 0.10.5  released

	
2002-03-21  Vadim Kurland  <vadim@crocodile.org>

	* FWObjectDatabase.xslt: fixed bug #532457 - port range end for
	traceroute increased

2002-03-19  Vadim Zaliva  <lord@crocodile.org>

	* fwbd.c: 
	* fwbd.h: 
	* crypto.hh: 
	* crypto.cc: 
	* Tools.cc: Compilation w/o openssl

2002-03-19  Vadim Kurland  <vadim@crocodile.org>

	* configure.in: added supprot for the following options:
	"--with-openssl=no" or "--without-openssl"
	"--with-ucd-snmp=no" or "--without-ucd-snmp"
	"--with-ucdsnmp=no" or "--without-ucdsnmp"

2002-03-18  Vadim Zaliva  <lord@crocodile.org>

	* XMLTools.cc:  Workaround for for difference in
	linefeeds handling in libxml-2.4.10 and 2.4.16.

2002-03-16  Vadim Zaliva  <lord@crocodile.org>

	* dns.cc: compilation problem for BSD systems.

2002-03-15  Vadim Kurland  <vadim@crocodile.org>

	* NATCompiler.hh: renamed macros 
	DECLARE_RULE_PROCESSOR -> DECLARE_NAT_RULE_PROCESSOR
	DECLARE_RULE_INSPECTOR -> DECLARE_NAT_RULE_INSPECTOR

	* PolicyCompiler.hh: renamed macros 
	DECLARE_RULE_PROCESSOR -> DECLARE_POLICY_RULE_PROCESSOR
	DECLARE_RULE_INSPECTOR -> DECLARE_POLICY_RULE_INSPECTOR

2002-03-14  Vadim Kurland  <vadim@crocodile.org>

	* aclocal.m4 (AM_PATH_OPENSSL): added macro to determine presence
	and location of openssl library

2002-03-12  Vadim Zaliva  <lord@crocodile.org>

	* Tools.cc (init): library initialization method.

	* dns.cc: using gethostbyname and gethostbyaddr on systems where
	are no re-enterant versions of these functions are present.

	* configure.in: 
	(strtok_r): checking for strtok_r presence and using
	generic replacement only if no standard one present.
	
	* Tools.cc (strtok_r): portable strtok_r implementation
	for platforms missing it.

	* manifest.hh: 
	* manifest.cc: 
	* win32modules.def.in (XML_PATH): 
	* configure_win32.in: 
	* dns.cc:
	* dns.hh: New win32 patch from Igor Morozov <igor@grad.kiev.ua>

2002-03-06  Vadim Zaliva  <lord@crocodile.org>

	* dns.cc: using HAVE_GETHOSTBYADDR_R_* macros

	* libfwbuilder-config.h.in: 
	* configure.in: added check for number of arguments in gethostbyaddr_r

2002-03-05  Vadim Zaliva  <lord@crocodile.org>

	* crypto.cc (X509_entry): bugfix for wrong certificate 
	entries. Found and fixed by Jeremy T. Bouse.

2002-03-04  Vadim Zaliva  <lord@crocodile.org>

	* crypto.cc: patch for Jeremy T. Bouse <Jeremy.Bouse@undergrid.net>
	correcting problems with wrong certificate expiration date and
	certificate format version.

2002-03-01  Vadim Kurland  <vadim@crocodile.org>

	* OSNetworkConfigurator.hh: added virtual method
	addVirtualAddressForNAT. This way we can concentrate all knowledge
	of particular OS in the class OSNetworkConfigurator and its
	descendants

	* OSNetworkConfigurator.cc: added OSNetworkConfigurator - simple
	base interface class for OS network configurator classes

	* 0.10.4/FWObjectDatabase.xslt: transformation also changes
	platform name 'ipfilter' -> 'ipf'

	* 0.10.3/FWObjectDatabase.xslt: transformation 0.10.3->0.10.4 adds
	namespace using xmlns in the root element. Transformation does not
	set namespace prefix. Since we use only one namespace, we can use
	it as a default namespace and do not need prefix.

	* 0.10.4/FWObjectDatabase.xslt: this transformation assumes there
	is always namespace declaration in the root element. This
	transformation uses its own locally defined prefix 'fwb' to match
	elements with namespace. This prefix is used only within this
	transformation and is not added to the output. The output tree has
	namespace declaration in its root element, just like input does.

2002-02-28  Vadim Zaliva  <lord@crocodile.org>

	* XMLTools.cc:  Workaround for bug #73088 in Gnome
    	bugzilla. To be removed than it will be fixed.
	
2002-02-28  Vadim Kurland  <vadim@crocodile.org>

	* 0.10.3/FWObjectDatabase.xslt: transformation adds namespace to
	all elements

2002-02-27  Vadim Zaliva  <lord@crocodile.org>

	* FWObjectDatabase.cc (saveXML): 
	(saveFile): Removed explicit namespace specification in saved file.
	It is defined via DTD.

2002-02-27  Vadim Kurland  <vadim@crocodile.org>

	* configure.in: patched fragment checking for resolv.h header file
	so it won't add -I/usr/include  This fixes bug #504485

2002-02-22  Vadim Kurland  <vadim@crocodile.org>

	* Rule.hh (class NATRule): added methods dealing with NAT rule
	type (SNAT/DNAT/REDIR/BINAT etc) NAT rule type is needed for
	compiler classes and is not stored in XML file.

	* Compiler.hh: made methods Compiler::warning and Compiler::abort
	public

2002-02-21  Vadim Kurland  <vadim@crocodile.org>

	* configure.in: fixed bug #520845 (configure fails on solaris)

2002-02-20  Vadim Kurland  <vadim@crocodile.org>

	* Firewall.cc (Firewall): assigning default values to host_OS and
	platform in constructor

2002-02-20  Vadim Zaliva  <lord@crocodile.org>

	* configure.in: replaces AM_ macros with AC_ macros

2002-02-19  Vadim Zaliva  <lord@crocodile.org>

	* Tools.cc (substituteMacros): macro substitutor.

2002-02-19  Vadim Kurland  <vadim@crocodile.org>

	* PolicyCompiler.cc (find_more_general_rule): checking interfaces
	in find_more_general_rule

2002-02-18    <vadim@crocodile.org>

	* Compiler.hh: Compiler::prolog now returns number of rules to
	be processed

2002-02-15  Vadim Zaliva  <lord@crocodile.org>

	* configure_win32.in: 
	* win32modules.def.in: files to compile under win32

2002-02-14  Vadim Kurland  <vadim@crocodile.org>

	* UDPService.cc (UDPService): 
	* TCPService.cc (TCPService): 
	* ICMPService.cc (ICMPService): assigning values to those 
	attributes that are defined as REQUIRED	in DTD. This fixed bug #517198

2002-02-11  Vadim Kurland  <vadim@crocodile.org>

	* fixed bug #516033 (tcp-flags... - added missing flags PSH and URG)
	
	* FWObjectDatabase.xslt: autoupgrade transofrmation adds new TCP flags

	* TCPService.cc: added support for flags PSH and URG.
	Added methods dealing with TCP flags

	* fwbuilder.dtd.in (TODO): added missing TCP flags to DTD

2002-02-10  Vadim Kurland  <vadim@crocodile.org>

	* Compiler.hh: removed optimize() as a separate method. Will
	implement optimizations (if any) in the compile() method

	* IPAddress.cc (operator+): bugfix: to do arithmetics on addresses
	I need to convert to host byteorder

2002-02-07  Vadim Zaliva  <lord@crocodile.org>

	* Management.cc:
	* Management.hh (class PolicyInstallScript): Added PolicyInstallScript under
	Management.

2002-02-06  Vadim Kurland  <vadim@crocodile.org>

	* Service.hh (class Service): added virtual method getProtocolNumber()

	* fwbuilder.dtd.in: 
	* Rule.cc (setAction):
	added standard actions "Scrub","Return","Skip","Continue"

	* PolicyCompiler.hh: minor parameter type changes
	
	* IPAddress.cc (getLength): added method Netmask::getLength
	(returns length of the netmask counting bits set to '1' from left
	to right)

	* FWOptions.hh (class FirewallOptions): removed method isDefault
	(to move knowledge of particular firewall platform parameters from
	API to the GUI)

2002-02-05  Vadim Zaliva  <lord@crocodile.org>

	* ManifestFile.txt: Manifest file format draft.

	* manifest.cc: 
	* manifest.cc: Simple class to work with Manifest files.

2002-02-05  Vadim Kurland  <vadim@crocodile.org>

	* Interval.hh (class Interval): 
	* Service.hh (class Service):
	* Address.hh (class Address): added method bool isAny() to
	classes Address, Service, Interval

2002-02-04  Vadim Kurland  <vadim@crocodile.org>

	* AddressRange.hh (class AddressRange): derived AddressRange
	from Address
	
	* Address.hh (class Address): added class Address - a base class
	for all other classes that can have an address and netmask and can
	be children objects of RuleElementSrc,RuleElementDst and other rule
	elements holding addresses.

	* RuleElement.hh (libfwbuilder): added method getFirst to all
	classes derived from RuleElement. This method returns pointer to
	the first child object; the pointer has an appropriate type.

2002-02-03  Vadim Kurland  <vadim@crocodile.org>

	* Policy.hh (class Policy): 
	* NAT.hh (class NAT): added wrapper methods that return PolicyRule*
	and NATRule* respectively for proper typization

	* Rule.hh (class PolicyRule): added methods getAction, setAction,
	getDirection, setDirection and enum types for action and direction

	* FWObjectDatabase.cc (FWObjectDatabase): added copying constructor

	* Rule.cc (PolicyRule): PolicyRule and NATRule now create their
	children objects in constructor. I also got rid of getElements and
	other methods which worked with set of rule elements and their
	names.  This is now done in the GUI. Also added methods with
	proper typization to classes PolicyRule and NATRule to provide a
	way to access individual rule elements (methods getSrc(), getDst()
	etc)


2002-02-03  Vadim Zaliva  <lord@crocodile.org>

	* Management.cc: 
	* Management.hh: Enabled attribute management.

	* fwbuilder.dtd.in: added 'enabled' attribute to SNMP
	and FWBD management elements.
	(PolicyInstallElement): added

2002-02-02  Vadim Kurland  <vadim@crocodile.org>

	* Firewall.cc (Firewall): adding FirewallOptions, Policy, NAT
	in constructor

	* Host.cc (Host): adding HostOptions in constructor

	* FWIntervalReference.hh (class FWIntervalReference): removed
	constructor FWIntervalReference(FWObject *)

	* FWServiceReference.hh (class FWServiceReference): removed
	constructor FWServiceReference(Service *)

	* FWObjectReference.hh (class FWObjectReference): removed constructor
	FWObjectReference(FWObject *)

	* FWReference.hh (class FWReference): removed constructor 
	FWReference(FWObject *)

	* FWObject.cc (FWObject): added costructor 
	FWObject(const FWObject	*root) to class FWObject and all 
	derived classes. Parameter 'root' is a pointer at the root 
	object of the tree we are going to add newly created object to.
	

2002-01-30  Vadim Kurland  <vadim@crocodile.org>

	* Compiler.hh: reorganization of classes in order to accomodate
	both PolicyCompiler and NATCompiler and provide better typization

2002-01-29  Vadim Kurland  <vadim@crocodile.org>

	* PolicyCompiler.hh: moved some methods from class Compiler
	to class PolicyCompiler

	* ObjectGroup.cc (validateChild): ObjectGroup::validate now
	permits adding reference to Interface 

	* ObjectGroup.cc (validateChild) and ServiceGroup.cc (validateChild): 
	using class::cast for type instead of hardcoded	type names
	
2002-01-26  Vadim Zaliva  <lord@crocodile.org>

	* crypto.cc (getFingerprint): introduced method to get
	public key fingerprint.

	* Management.cc (fromXML, toXML, removePublicKey): 
	* fwbuilder.dtd.in: PublicKey element is now optional.

	* XMLTools.cc (setDTD): reporting validation errors to user.

	* FWObject.cc (fromXML): setting 'failed_element' exception 
	property.

2002-01-25  Vadim Zaliva  <lord@crocodile.org>

	* Management.cc (isEmpty): bugfix.

	* FWObject.cc (getFirstByType): getFirstByType and getByType methods are now
	constant.

2002-01-24  Vadim Zaliva  <lord@crocodile.org>

	* Management.cc (duplicate): duplicate methods added to all management classes.

	* FWObject.cc (duplicate): 
	* Network.cc (duplicate): 
	* AddressRange.cc (duplicate): New duplicate/operator= coupuling.
	Now operator= uses duplicate and only duplicate needs to be overloaded.
	Also, duplicate takes second parameter: 'preserve_id'.

2002-01-23  Vadim Kurland  <vadim@crocodile.org>

	* FWObjectDatabase.xslt: updated autoupgrade transformation, now
	it adds subelement Management to Host and Firewall elements and
	moves snmp community attributes to Management/SNMPManagement

2002-01-23  Vadim Zaliva  <lord@crocodile.org>

	* FWObject.hh (FWObject*>): now FWObject and all its subclasses
	toXML/fromXML methods can throw FWExcepton.

	* fwbuilder.dtd.in: added Management element under Host, Firewall,
	Gateway.

2002-01-22  Vadim Zaliva  <lord@crocodile.org>

	* dns.cc: changes to work with Solaris gethostbyaddr_r

2002-01-21  Vadim Zaliva  <lord@crocodile.org>

	* dns.cc (getHostByName): when gethostbyname_r is not present,
	simple gethostbyname is used. This is fix for FreeBSD where they
	do not have currently thread safe gethostbyname. In this cass all
	host resolution will be serialized and while it work it could be quite
	slow. This will especially affect SNMP crawler.

2002-01-19  Vadim Zaliva  <lord@crocodile.org>

	* crypto.cc (asString): increased number of pkcs#12 iterations.

	* XMLTools.cc (convert): reporting what transformation failed.

2002-01-18  Vadim Zaliva  <lord@crocodile.org>

	* Tools.cc (unbase64): convinience function doing base64 decoding.

	* crypto.cc (asString): use base64 encoding for PKCS#12 data.
	(KeyAndCert): base64 decoding of PKCS#12 data.

	* XMLTools.cc (quote_linefeeds): add linefeed for readability

2002-01-17  Vadim Kurland  <vadim@crocodile.org>

	* configure.in: set version to 0.10.5

	* fwbuilder.dtd.in : added element AddressRange

	* AddressRange.hh (class AddressRange): added class AddressRange

2002-01-16  Vadim Zaliva  <lord@crocodile.org>

	* libfwbuilder-config.in (ord_libs): added libfwbd

2002-01-16 Vadim Kurland <vadim@crocodile.org>

	* configure.in: added filters to remove '-I/usr/include' from
	various variables from which CFLAGS is composed in the end
	Still have one more instance left (comes from checks for resolv.h)

2002-01-16  Vadim Zaliva  <lord@crocodile.org>

	* crypto.hh (class KeyAndCert): PKCS12 support. Minor error handling
	cleanup.

2002-01-15  Vadim Zaliva  <lord@crocodile.org>

	* FWException.hh (class FWException): toString() is const method.

2002-01-14  Vadim Zaliva  <lord@crocodile.org>

	* crypto.cc: Certificate generation code (ctor)

2002-01-13  Vadim Kurland  <vadim@crocodile.org>

	* FWObject.hh (createRef): streamlined code in createRef virtual
	method

2002-01-12  Vadim Zaliva  <lord@crocodile.org>

	* crypto.cc: certificates management code

	* RuleElement.cc: Serice-relate methods return values and parameters 
	types are now more specialized.

	* FWServiceReference.cc (setPointer): more specialized parameter.

	* ServiceGroup.cc (createRef): return value and parameters types
	are now more specialized (this turned out to be wrong change --vk).

	* Service.hh: added base class for TCP, UDP, ICMP, IP and Custom services.

	* FWObject.hh (libfwbuilder): added FWObject::constcast()

2002-01-11  Vadim Kurland  <vadim@crocodile.org>

	* Interface.hh (class Interface): added methods getAddress and
	getNetmask

	* Host.hh (class Host): added methods getAddress and getNetmask

	* Makefile.in: added directories and basic classes for compiler
	framework

2002-01-11  Vadim Zaliva  <lord@crocodile.org>

	* crypto.hh: misc classes for keys/certificates management.

2002-01-09  Vadim Zaliva  <lord@crocodile.org>

	* fwbd.c (load_certificates): 
	* fwbdclient.c (main): manual certificate loading.

2002-01-08  Vadim Kurland  <vadim@crocodile.org>

	* IPAddress.cc (_convert_range_to_networks): added number of
	methods for address arithmetics and other manipulations with 
	addresses, netmasks and ip networks

2002-01-07  Vadim Zaliva  <lord@crocodile.org>

	* fwbdclient.c (main): quote command implemented

	* fwbd.c (send_protocol_line): sending protocol lines

2002-01-06  Vadim Zaliva  <lord@crocodile.org>

	* fwbdclient.c: connection establishment, command parsing.

	* configure.in: libreadline detection for fwdbclient.

2001-12-29  Vadim Zaliva  <lord@crocodile.org>

	* version 0.10.4 released
	
2001-12-28  Vadim Zaliva  <lord@crocodile.org>

	* FWObject.cc (findAllReferences): opimized findAllReferences method.

2001-12-27  Vadim Zaliva  <lord@crocodile.org>

	* XMLTools.cc (setDTD): fixed bug #497234 - crashing on upgrade conversion.

	* ThreadTools.hh:
	* ThreadTools.cc: ability to restart TimeoutCounter.

2001-12-20  Vadim Zaliva  <lord@crocodile.org>

	* FWObject.cc (findAllReferences): method to find all references
	to given object.

	* XMLTools.cc (setDTD): validating document after DTD is set.
	(bug #495276

2001-12-19  Vadim Zaliva  <lord@crocodile.org>

	* src/fwbuilder sources moved to src/fwbuilder directory. Including all
	our files with "fwbuilder/" prefix.

	* Rule.cc (toXML): 
	* Host.cc (toXML): 
	* Firewall.cc (toXML): Forming common object XML part at one place.

	* FWObject.cc (fromXML): preserving linefeeds in comments

2001-12-17  Vadim Zaliva  <lord@crocodile.org>

	* FWObject.cc (dump): 
	* XMLTools.cc (loadFile): 
	* FWException.hh: 
	* FWObject.hh: 
	* configure.in: 
	* Constants.hh: g++3 compilation.

	* snmp.cc (run_impl): ignoring networks with netmask 255.255.255.255 and
	ones belonging to p2p interface found in crawl.

2001-12-16  Vadim Zaliva  <lord@crocodile.org>

	* Integration of first part of win32 port by
	Igor Morozov <igor@grad.kiev.ua>

2001-12-10  Vadim Kurland  <vadim@crocodile.org>

	* Host.cc (toXML): added virtual method toXML to the class Host
	to fix bug #491279
	
	* set version to 0.10.3

2001-12-05  Vadim Kurland  <vadim@crocodile.org>

	* Host.cc (setDefaults): added support for HostOptions and
	defaults

	* FWOptions.hh (class HostOptions): added class HostOptions

	* configure.in: set version number to 0.10.2

2001-11-28  Vadim Kurland  <vadim@crocodile.org>

	* version 0.10.1 released

2001-11-25  Vadim Zaliva  <lord@crocodile.org>

	* configure.in: 
	* libfwbuilder-config.h.in: 
	* XMLTools.cc: check for libxslt/xsltconfig.h

2001-11-23  Vadim Kurland  <vadim@crocodile.org>

	* FWObjectDatabase.xslt: transformation adds FirewallOption/Option
	named "accept_established"

2001-11-18  Vadim Kurland  <vadim@crocodile.org>

	* fwbuilder.dtd.in (TODO): changed attribute name "alias" -> "label"
	made it specific to Interface only

2001-11-16  Vadim Kurland  <vadim@crocodile.org>

	* FWObjectDatabase.xslt: autoupgrade transformation changes attribute
	"ext" to "security_level" and adds element Interface to Host

	* Interface.cc (setSecurityZone): added attribute "security_level"
	to element Interface and support for it in the class Interface

	* FWObject.cc (setAlias): added attribute "alias" and support for
	it in the class FWObject

2001-11-15  Vadim Kurland  <vadim@crocodile.org>

	* InterfacePolicy.cc: added comment to InterfacePolicy

2001-11-12  Vadim Kurland  <vadim@crocodile.org>

	* Interface.cc (Interface): added processing for physAddress

	* fwbuilder.dtd.in (TODO): added attribute "physAddress" to
	element Interface

	* set package version to 0.10.1 and SO_VERSION to 1.0.0

2001-11-11  Vadim Kurland  <vadim@crocodile.org>

	* Network.cc (duplicate): added virtual method duplicate. This is
	needed because class Network stores address and netmask not in
	the dictionary "data" and FWObject::duplicate does not copy them

	* libfwbuilder.spec.in (Obsoletes): added call to libtoolize per
	bug  #480081

	* migration/Makefile.in: per bug #480656 added missing 
	transofrmations
	
2001-10-30  Vadim Zaliva  <lord@crocodile.org>

	* FWObject.cc: removed recursive iterators - unused code.

2001-10-19  Vadim Zaliva  <lord@crocodile.org>

	* snmp.cc (fetchRoutingTable): crawler detects "external" interface
	by "default" route.

2001-10-04  Vadim Kurland  <vadim@crocodile.org>

	* fwbuilder.dtd.in: added attribute ID to FWObjectDatabase

2001-09-21  Vadim Zaliva  <lord@crocodile.org>
	
	* configure.in: checking for ucd-snmp patched
	by mandrake (in Mandrake Linux 8.1)

	* snmp.cc: buffer override safe ucd-snmp interface

2001-09-28  Vadim Kurland  <vadim@crocodile.org>

	* RuleElement.cc (addRef): added virtual removeRef and addRef
	which add and remove appropriate "any" if rule element is empty

2001-09-24  Vadim Kurland  <vadim@crocodile.org>

	* FWObject.cc (getFirstByType): bugfix
	(removeAllInstances): applied changes by vz

2001-09-22  Vadim Kurland  <vadim@crocodile.org>

	* Makefile.in: added "install_lib" Makefile target

	* libfwbuilder-config.in (prefix): added option "staticlibs"

	* FWObject.cc: removeAllInstances and removeAllReferences 
	reimplemented using for_each and find_if

	* FWObject.hh (FWObject*>): added removeAllReferences method

2001-09-21  Vadim Zaliva  <lord@crocodile.org>

	* using namespace 'libfwbuilder'.

2001-09-20  Vadim Kurland  <vadim@crocodile.org>

	* Rule.cc (fromXML): fixed bug #451490: added xslt code to
	upgrade transformations, removed old code from Rule.cc

2001-09-20  Vadim Zaliva  <lord@crocodile.org>

	* Constants.cc: 
	* Constants.hh: Class holding libraty constants

	* XMLTools.hh (class XMLTools): possibility to pass version number
	while loading file.

2001-09-19  Vadim Zaliva  <lord@crocodile.org>

	* libfwbuilder-config.h.in: prefix macros with LIBFWBUILDER_

2001-09-19  Vadim Kurland  <vadim@crocodile.org>

	* Makefile.in (all): added script libfwbuilder-config
	moved data migration script from fwbuilder

2001-09-18  Vadim Zaliva  <lord@crocodile.org>

	* Makefile.in (SOURCES): dns, snmp and HostsFile moved
	here from fwbuilder.

	* BackgroundOp.hh (Object): moved here from 'fwbuilder' module.
	monitor_operation() is now public.

	* configure.in: Added check for libsigc++, removed
	PIXMAPS variables.

2001-09-17  Vadim Zaliva  <lord@crocodile.org>

	* Pool.hh: moved from GUI.

	* SyncQueue.hh (class SyncQueue): SyncQueue moved
	to separate header file.
	(class SyncQueue): added shutdown mechanism to queue.

	* libfwbuilder.spec.in (Group): changed group to
	'System Environment/Libraries'

2001-09-17  Vadim Kurland  <vadim@crocodile.org>

	* Makefile.in (LTCXXLINK): using libtool for API library

2001-09-17  Vadim Zaliva  <lord@crocodile.org>

	* FWObject.hh: 
	* FWObject.cc: Internal code brush-up. Removed NULL pointer
	checks in children list. Use stl algorithms wherether it is possible.

2001-09-16  Vadim Kurland  <vadim@crocodile.org>

	* OptionsDlg.cc and many other dialogs: corrected buttons size and
	layout

	* InterfaceDialog.cc (InterfaceDialog): added support for "delete"
	event

	* OptionsDlg.cc (OptionsDlg): redesigned Options dialog using
	two-pane window with options represented in a tree-like vew

	* BuiltinDialog.hh (setLibrary): BuiltinDialog now remembers
	the name of the tree the object it shows belongs to.

	* OptionsDlg.cc (OptionsDlg): added GUI elements to support
	ObjectTree view modes "Split" and "Combined"

	* FWObjectBook.cc (build): implemented ObjectTree view modes:
	"Split" mode shows libraries in a separate trees,
	"Combined" mode shows all libraries in one combined tree

	* ObjectTree.cc (ObjectTree): ObjectTree can now filter objects
	by their attribute "library"

	* main_window.cc (main_window()): now using FWObjectBook
	instead of the tree

	* FWObjectBook.cc (FWObjectBook): added class FWObjectBook - 
	a collection of many object tree widgets. This widget is used
	to show objects from different libraries in different pages

2001-09-14  Vadim Zaliva  <lord@crocodile.org>

	* api/ moved doc++ comments from .cc to .hh files

	* dns.cc (DNS_bulkBackResolve_Thread): using our Cond and Mutex
	classes instead of GCond and GMutex.

	* ThreadTools.hh (class Cond): Conditional Variable implemented.
	(_Tp>): Synchronized Queue implemented.

2001-09-13  Vadim Zaliva  <lord@crocodile.org>

	* snmp.cc (special): ignore 0.0.0.0/* networks.
	(run_impl): timestamps for start/end of scan.

	* FWObject.cc (fromXML): library addtribute and
	access methods added.

	* fwbuilder.dtd.in (TODO): added 'library' attribute
	to list of standard object's attributes.

2001-09-12  Vadim Zaliva  <lord@crocodile.org>

	* snmp.cc (fetchInterfaces): reading operational and admin
	status of interface.
	(run_impl): ignoring routes which use interface which
	is currently down.
	(guessInterface): guessing interface for routes where it is
	not specified.

	* Interface.hh (class Interface): added operational
	status attribute.

2001-09-12  Vadim Kurland  <vadim@crocodile.org>

	* DiscoveryDruidP51Dialog.cc (DiscoveryDruidP51Dialog): changed
	checkboxes to make their meaning consistent

	* main_window.hh (Window): moved bunch of methods from ObjectTree
	to main_window

2001-09-11  Vadim Zaliva  <lord@crocodile.org>

	* snmp.cc (fetchInterfaces): rewrote of interface fetch code
	to work around bug observed of following SNMP implementation:
	IOS (tm) C2600 Software (C2600-IS-M), Version 12.0(7), RELEASE SOFTWARE (fc1)
	with uptime of 338 days.

2001-09-10  Vadim Kurland  <vadim@crocodile.org>

	* main_window_menu.cc (build_menu): renamed menu item for the
	network discovery Druid

	* DiscoveryDruidP70Dialog.cc (fillListOfNetworks): all the
	networks and hosts in the list of nodes discovered by druid or DNS
	import are now checked by default

	* DiscoveryDruidP65Dialog.cc (execute): added checkbox to the
	object discovery druid page: "Avoid point-to-point links"

	* All dialogs: removed large icon in all dialogs. All dialogs have
	been adjusted to look nice in different screen resolutions

	* main_window2.cc : setting main window size depending on the
	screen dimentions

2001-09-10  Vadim Zaliva  <lord@crocodile.org>

	* snmp.cc (run_impl): task #36517: added option controlling
	wherether to try to crawl to the other side of 
	point-to-point routes.
	(point2point): detecting point-to-point routes
	using interface information.

	* IPAddress.hh (class IPNetwork): method for getting
	broadcast address of network.

	* snmp.cc (fetchRoutingTable): fetching interface
	and gateway information.
	(run_impl): task #37813 - adding route gateway
	as crawler input.
	(run_impl): task #36520 - skipping interface broadcasts found
	in routing table from crawler output.

2001-09-09  Vadim Zaliva  <lord@crocodile.org>

	* IPAddress.hh (class IPRoute): interface and gateway
	fields added.

2001-09-08  Vadim Kurland  <vadim@crocodile.org>

	* fwbuilder.dtd.in (TODO): Added object Gateway to DTD. 
	Added HostOptions to Host.

	* FirewallDialog.cc (FirewallDialog): new iptables option: "Accept
	established TCP sessions after firewall restart". This option is
	ON by default. Autoupgrade transformation adds this option to
	existing firewalls.


2001-09-06  Vadim Kurland  <vadim@crocodile.org>

	* PolicyListElement.cc (PolicyListRuleOpt): Rule element "Options"
	now shows logging icon and options icon. "Log" rule element can
	now be retired. Without "Log" column policy list is more clean and
	compact, especially for Interface policies

	* FindDialog.cc (on_find_clicked): using OptionMenuWidget;
	implemented partial match search

	* OptionMenuWidget.cc (on_menu_selection_changed): OptionMenuWidget
	keeps track of the menu state and generates signal "changed" only
	when menu choice actually changed

2001-09-05  Vadim Kurland  <vadim@crocodile.org>

	* ObjectTree.cc: newly created object can now be deleted without
	saving

	* DialogPlugin.hh: added methods which load and save data from
	groups of dialog widgets

	* ObjectTree.cc (on_delobj): added "Delete" menu item

2001-09-04  Vadim Kurland  <vadim@crocodile.org>

	* FirewallDialog.cc: FirewallDialog now calls setDefaults method
	of the firewall object to set default values for all
	platform-specific firewall parameters and OS-specific network
	parameters

	* Firewall.hh (class Firewall): added doc++ comments to some methods

2001-09-03  Vadim Zaliva  <lord@crocodile.org>

	* configure.in: dynamic link with libxml2 and libxslt.

	* snmp.cc (run_impl): task #36519 - ignoring IPs on loopback.

	* IPAddress.hh (class IPNetwork): added isBroadcast() and isMulticast()
	methods.

2001-09-02  Vadim Kurland  <vadim@crocodile.org>

	* policy.c (processElementaryPolicyRule): further fixes for bug
	#455794

	* iptables.c (prologue): Implemented support for various kernel
	parameters 

	* FirewallDialog.cc (on_host_os_changed): Implemented host OS support
	for Firewall Object

2001-08-28  Vadim Kurland  <vadim@crocodile.org>

	* iptables.c (printARPEntryCommands): improved code which generates
	commands to add ARP entries for static NAT. Now it adds ARP entries
	for SNAT translations using "other" IP addresses

2001-08-27  Vadim Kurland  <vadim@crocodile.org>

	* policy.c (processElementaryPolicyRule): fixed bug #455794 (wrong
	code generated for the loopback interface policy rule with src and
	dst being firewall object)

2001-08-26  Vadim Kurland  <vadim@crocodile.org>

	* FirewallDialog.cc (wrk2dlg): added "Load modules" checkbox
	back to the Firewall Dialog "iptables" tab. Also added an option
	for setting up PATH environment variable in iptables script
	
2001-08-25  Vadim Kurland  <vadim@crocodile.org>

	* nat.c (printNatRule): fixed bug 449638 (port mapping in DNAT rules)

	* iptables.c (parseOptions): fixed bugs 448693 and 453966 (sttting
	rule options did not generate any code in iptables script)

	* FindDialog.cc: Implemented "Find" feature

2001-08-24  Vadim Kurland  <vadim@crocodile.org>

	* PolicyListItem.cc (paint): fixed bug 449133 (GUI was hanging if
	very long word was entered in the comment field in the policy)

	* PolicyListElement.cc (add_item_to_policy): fixd bug 454812 (GUI
	used to allow duplicates in policy rule elements)

2001-08-19  Vadim Zaliva  <lord@crocodile.org>

	* configure.in: Checking for /usr/include/bind
	and libbind_r.a.

2001-08-18  Vadim Zaliva  <lord@crocodile.org>

	* Makefile (install): if doc++ present, geenerales 
	API class reference and installs it under DOCDIR/classref.

	* configure.in: checking for doc++ presense.

2001-08-14  Vadim Zaliva  <lord@crocodile.org>

	* dns.cc (findA): renamed variable 'nsaddr' to avoid
	name clash with macro in older versions of 'bind'.


2001-08-05  Vadim Zaliva  <lord@crocodile.org>

	* Merger 0.9.4 branch into main trunk.

2001-08-05  Vadim Kurland  <vadim@crocodile.org>

	* DiscoveryDruidP65Dialog.cc: fixed bug #448130 where project did
	not link because of the missing method in class
	DiscoveryDruidP65Dialog if compiled without support for SNMP

	* NetworkDialog.cc (dlg2wrk): fixed bug #448213 where netmask
	could not be set in NetworkDialog

2001-08-04  Vadim Zaliva  <lord@crocodile.org>

	* CodingConventions.txt: Proposed project coding conventions
	document.

	* FWObject.hh: 
	* DialogFactory.hh: 
	* BuiltinDialog.cc (BuiltinDialog): 
	* DialogFactory.cc (class DefaultDialogFactory): removing 
	GUI dependencies from data layer. Switching from 
	Fatory Method to AbstractFactory pattern for
	dialog creation.

2001-08-04  Vadim Kurland  <vadim@crocodile.org>

	* DiscoveryDruidP65Dialog.cc (on_save_to_file_clicked): added
	ability to save network scan log to a file

2001-08-03  Vadim Zaliva  <lord@crocodile.org>

	* api/: starting work on API.

2001-08-02  Vadim Kurland  <vadim@crocodile.org>

	* iptables.c (processTime): time matching support implemented in
	iptables policy compiler (requires patch from patch-o-matic)

2001-07-30  Vadim Kurland  <vadim@crocodile.org>

	* iptables.c: added support for drop-table
	(requires patch-o-matic)
	
	* iptables.c (processSrv): added support for ipv4options patch
	(requires patch-o-matic)
	
	* nat.c (processNATRule): added support for NETMAP target (requires
	patch from patch-o-matic)

	* iptables.c (prologue): corrected script to take into account
	different path to arp and route in different distributions

2001-07-29  Vadim Kurland  <vadim@crocodile.org>

	* policy.c (processElementaryPolicyRule): added recognition of
	broadcast addresses. If destination object in the rule is
	broadcast, compiler should generate code into INPUT chain

	* CustomService.hh (class CustomService): added class CustomService

	* iptables.c (processSrv): added support for CustomService in
	iptables compiler

	* set version to 0.9.4

	* added autoupgrade xslt transformations for upgrade 0.9.3->0.9.4
	
2001-07-24  Vadim Kurland  <vadim@crocodile.org>

	* iptables.c (printARPEntryCommands): now we can manage static ARP
	entries and associated routes needed for DNAT translations via
	Firewall Builder

2001-07-22  Vadim Kurland  <vadim@crocodile.org>

	* NetworkDialog.cc (NetworkDialog): switched to IPAddresswidget for
	address and netmask

	* HostDialog.cc, FirewallDialog.cc: switched to IPAddressWidget
	for address

2001-07-21  Vadim Kurland  <vadim@crocodile.org>

	* PolicyList.cc (on_button_release_event): free space in the policy
	or NAT view is now clickable: right mouse button click brings 
	pop-up menu with options for adding new rules at the top or bottom
	of the policy
	
	* OptionsDlg.cc (run): added UI parameters "Autosave" - if true,
	data in all dialogs is automatically saved when user switches
	between objects

2001-07-20  Vadim Kurland  <vadim@crocodile.org>

	* policy.c (processPolicyERule): compiler now correctly processes
	case where firewall object used in both src and dst in the policy
	rule
	(rulePrologue): now using separate temporary chains for INPUT,OUTPUT
	and FORWARD in rules with negation.
	(optimisePolicyRules): improved rule optimiser

2001-07-19  Vadim Zaliva  <lord@crocodile.org>

	* BackgroundOp.hh (class Logger): added 'start' and 'end' manipulators
	to lock synchornized output.

	* dns.cc (DNS_bulkBackResolve_Thread): synchronized output from several
	resovled threads.

2001-07-19  Vadim Kurland  <vadim@crocodile.org>

	* iptables.c (parseOptions): added rule option "stateless" - now
	user can mark certain rules as not requiring stateful
	inspection. This feature, if used properly, can improve
	performance without compromising security

	* RuleOptionsDialog.cc (RuleOptionsDialog): added checkbox for
	rule option "stateless"

2001-07-18  Vadim Zaliva  <lord@crocodile.org>

	* HostsFile.cc (parse): skipping IPv6 addresses
	* IPAddress.cc (operator=): detecting IPv6 addresses.

2001-07-17  Vadim Kurland  <vadim@crocodile.org>

	* policy.c (processPolicyERule): fixed bug #441979 in iptables
	compiler (Iface rules wrong when direction both)


2001-07-17  Vadim Zaliva  <lord@crocodile.org>

	* snmp.cc (run_impl): Distinguishing point-to-point routes
	and adding them as hosts, rather as networks.

	* dns.hh (class DNS_findA_query): Handling mulpiple PTR records.

2001-07-16  Vadim Zaliva  <lord@crocodile.org>

	* HostsFile.cc (parse): More decent parser, hanlding
	empty lines, end of line comments and multiple hosts aliases.

2001-07-15  Vadim Kurland  <vadim@crocodile.org>

	* DiscoveryDruidP05Dialog.cc (DiscoveryDruidP05Dialog): Now option
	"Perform network scan using SNMP queries" will be disabled, and 
	explanatory text added, if program is compiled with no SNMP support

2001-07-14  Vadim Zaliva  <lord@crocodile.org>

	* dns.cc: implemented getHostByAddress with DNS timeout.

2001-07-14  Vadim Kurland  <vadim@crocodile.org>

	* nat.c (processNATRule): support for REDIRECT in iptables

2001-07-13  Vadim Kurland  <vadim@crocodile.org>

	* snmp.cc (init): added parameters for dns timeout
	(isvirtual): bugfix in virtual address detection method

	* TableOfObjects.cc (addObject): If object has multiple names in DNS, 
	this widget will show all of them in combo box

	* FilterDialog.cc (FilterDialog): Now can filter by address and name

2001-07-13  Vadim Zaliva  <lord@crocodile.org>

	* snmp.cc (run_impl): optinally resolve found hosts.
	(isvirtual): detection and removed virtual IPs.

	* snmp.hh (class CrawlerFind): return DNS info in availiable.

	* dns.cc (run_impl): Multu-threaded back-resolving
	implemented.

	* Pool.hh (Pool): tiny memory leak corrected.

2001-07-12  Vadim Kurland  <vadim@crocodile.org>

	* DiscoveryDruidP70Dialog.cc (on_filter_clicked): now user can
	apply filter to objects found by crawler

2001-07-11  Vadim Kurland  <vadim@crocodile.org>

	* fwcompiler.c (cmpTriplet): fixed bug #440557
	* iptables.c (prologue): now setting default policy before flushing
	all chains
	* iptables.c (processSrv): fixed bug #440390 

2001-07-10  Vadim Kurland  <vadim@crocodile.org>

	* DiscoveryDruidP70Dialog.hh (class DiscoveryDruidP70Dialog):
	one more page to DiscoveryDruid (picking objects discovered by
	SNMP crawler)

2001-07-10  Vadim Zaliva  <lord@crocodile.org>

	* snmp.cc (fetchRoutingTable): discovering
	networks from network host routing table.

2001-07-09  Vadim Kurland  <vadim@crocodile.org>

	* DiscoveryDruidP65Dialog.cc: using pool for
	SNMPCrawler operations. Now it is safe to interrupt crawler in
	the middle of the process

2001-07-08  Vadim Kurland  <vadim@crocodile.org>

	* DiscoveryDruidP50Dialog.cc (DiscoveryDruidP50Dialog): 
	* DiscoveryDruidP53Dialog.cc (DiscoveryDruidP53Dialog): 
	* DiscoveryDruidP65Dialog.cc (DiscoveryDruidP65Dialog): 
		GUI for SNMP crawler
	
2001-07-08  Vadim Zaliva  <lord@crocodile.org>

	* dns.hh (class DNS_bulkBackResolve_query): operation
	for groups of IPs.

	* dns.cc (getHostByAddr): method added

	* snmp.cc
	* snmp.hh (class SNMPCrawler): retries, timeout, community
	parameters added.

2001-07-07  Vadim Kurland  <vadim@crocodile.org>

	* ListOfIcons.cc (addObject): fixed bug: pop-up menu in group view
	now correctly activates "Open", "Copy" and "Cut" items

	* ObjectTree.cc (on_button_release_event): fixed bug: gui crashed
	after "Help me build policy" Druid if Policy or NAT were showing in
	the right pane of the main window (Support request #437759)


2001-07-06  Vadim Kurland  <vadim@crocodile.org>

	* InterfaceDialog.cc (on_addr_focus_out_event): fixed bug: gui crashed
	if user hit TAB on empty "Address" field

2001-07-06  Vadim Zaliva  <lord@crocodile.org>

	* FirewallDialog.cc: 
	* snmp.cc: 
	* snmp.hh: 
	* config.h.in:
	* configure.in: better check for libsnmp

2001-06-28  Vadim Zaliva  <lord@crocodile.org>

	* snmp.hh:
	* snmp.cc (run_impl): implemented simple single threaded
	SNMP crawler.

2001-06-26  Vadim Kurland  <vadim@crocodile.org>

	* main_window.cc (on_feedback_activate): menu item "Feedback" added

	* GenericBackgroundOpDialog.hh (Window): class SNMPOpDialog renamed
	to GenericBackgroundOpDialog

2001-06-20  Vadim Kurland  <vadim@crocodile.org>

	* FirewallDialog.cc (addOptionsMenu): Now using OptionsMenu widget
	where appropriate

2001-06-18  Vadim Kurland  <vadim@crocodile.org>

	* main_window.cc (on_release_notes_activate): open Release Notes
	in the default browser configured for "file://" URLs. Now we have
	choice : we can use our own mini browser MiniBrowserDialog or
	standard URL display program configured in system Gnome
	preferences

	* MiniBrowserDialog.hh (class MiniBrowserDialog): mini-browser dialog
	using HTMLViewer widget

	* htmlviewer.cc (HTMLViewer): primitive gtk-- wrapper widget for
	gtk-xmhtml widget. This widget will be used to show ReleaseNotes
	etc.

2001-06-17  Vadim Kurland  <vadim@crocodile.org>

	* BuiltinDialog.cc (BuiltinDialog): GUI now does not permit
	creation of objects with empty names. Some logic cleanup in
	"Apply"/"Undo" functions

2001-06-17  Vadim Zaliva  <lord@crocodile.org>

	* dns.cc (findA): timeout check in findA() methods.

	* XMLTools.cc (saveFile): ident XML files on save.

2001-06-14  Vadim Zaliva  <lord@crocodile.org>

	* configure.in: Checking for actual presence of static version
	of libresolv.a, if not found - try dynamic.

2001-06-13  Vadim Kurland  <vadim@crocodile.org>

	* main_window.cc (on_install): support for optional policy install
	script added

2001-06-11  Vadim Zaliva  <lord@crocodile.org>

	* configure.in: unconditionally link with libresolv.a

2001-06-11  Vadim Kurland  <vadim@crocodile.org>

	* DiscoveryDruid.cc (on_prepare): implemented GUI for importing
	hosts from DNS zone

	* iptables/iptables.c (parseOptions): bug 429427 fixed (garbage
	after the end of rule action) 
	* iptables/nat.c: bug 426874 fixed (implemented NAT on firewalls
	with dynamic address on external interface)
	* iptables/iptables.c: bug 424440 fixed (added correct clean-up code
	on top of iptables script to remove all "old" rules in all
	chains)

	* iptables/nat.c: bug 422345 fixed (implemented support for
	negations in NAT, in particular negated original dest.)

	* iptables/nat.c: bug 424435 fixed (implemented negation in NAT)
	

2001-06-09  Vadim Kurland  <vadim@crocodile.org>

	* iptables.c (parseOptions): fixed bug 431705 - log options
	  an logging limits processing in iptables compiler

	* DiscoveryDruid.cc (on_next): Objects Discovery Druid class

	* DiscoveryDruidP40Dialog.cc (newObject): reads hosts(5) file and
	  creates objects
	

2001-06-08  Vadim Zaliva  <lord@crocodile.org>

	* Makefile.in: bulk compilation of all GLADE-generated
	sources to decrease build time.

	* HostsFile.hh:
	* HostsFile.cc: hosts(5) file parser

2001-06-07  Vadim Zaliva  <lord@crocodile.org>

	* dns.cc: Made background operations of getNS()
	and findA() operations.

	* config.h.in: 
	* configure.in: checking for functions from bind8
	api.

	* dns.cc: code cleanup. works with bind8
	on Linux.
	(HAVE_BIND8): conditional compilation
	to compile on systems without proper
	bind libraries.

2001-06-06  Vadim Zaliva  <lord@crocodile.org>

	* dns.cc (findA): first working version
	* configure.in: checking for libbind_r.a

2001-06-04  Vadim Zaliva  <lord@crocodile.org>

	* snmp.hh: 
	* snmp.cc: 
	* FirewallDialog.cc (on_snmp_get_released): Using SNMP
	timeout and retries from preferences.

2001-05-30  Vadim Zaliva  <lord@crocodile.org>

	* configure.in: libresolv detection

2001-05-29  Vadim Zaliva  <lord@crocodile.org>

	* dns.cc (getHostByName): using gethostbyname_r
	with 5 (solaris) or six (linux) parameters.

	* configure.in: detecting arity of gethostbyname_r

	* dns.hh: DNS lookup wrapper interface.
	* dns.cc: DNS lookup wrapper implementation for Linux.

2001-05-23  Vadim Zaliva  <lord@crocodile.org>

	* main_window_menu.cc (build_menu): 
	* main_window.cc (on_tools_scan): Added Tools menu with
	Scan submenu.

2001-05-20  Vadim Kurland  <vadim@voyager.crocodile.org>

	* BackgroundOp.cc: background op. classes redesign

2001-05-18  Vadim Zaliva  <lord@crocodile.org>

	* snmp.cc (run_impl): 
	(run_impl): handling problem with present, but
	not configured interfaces.

	* snmp.hh (run_impl): 
	* FirewallDialog.cc (on_snmp_get_released): 
	(on_snmp_get_descr_released): 
	Running SNMP queries in background, without
	GUI freeze.

2001-05-18  Vadim Kurland  <vadim@voyager.crocodile.org>

	* ListOfIcons.cc (addObject): fixed bug #425023 

2001-05-17  Vadim Kurland  <vadim@voyager.crocodile.org>

	* OptionsDlg.cc (OptionsDlg): removed snmpget and snmpwalk paths
	parameters

2001-05-16  Vadim Kurland  <vadim@voyager.crocodile.org>

	* PolicyListItem.cc (PolicyListObjectItem): translated
	source/dest/service now shows as "Original" if no translation is
	needed.


2001-05-15  Vadim Zaliva  <lord@crocodile.org>

	* snmp.cc: 
	* snmp.hh: 
	* FirewallDialog.cc (wrk2dlg): 

	* config.h.in: 
	* configure.in: detecting presense of ucd-snmp library

	* merger snmp-lib-integration branch.

2001-05-12  Vadim Zaliva  <lord@crocodile.org>

	* XMLTools.cc (parseFile): detecting DTD validation
	errors during file load.

2001-05-11  Vadim Kurland  <vadim@voyager.crocodile.org>

	* FWObjectDatabase.xslt: making sure attribute action is never 
	  empty in PolicyRule

2001-05-11  Vadim Zaliva  <lord@crocodile.org>

	* fwcompiler.c (main): using DTD when loading data file.

2001-05-11  Vadim Kurland  <vadim@voyager.crocodile.org>

	* FWObjectDatabase.xslt (xmlns): transformation from 0.8.7 to 0.9.0:
	  fixed bug where InterfacePolicy objects created by this script
	  where duplicated

	* FirewallDialog.cc (on_snmp_get_released): now user doesn't have
	to press "Apply" before pulling information from the firewall via
	SNMP

2001-05-14  Vadim Zaliva  <lord@crocodile.org>

	* snmp.cc: getting interfaces information
	using snmp library.

2001-05-11  Vadim Zaliva  <lord@crocodile.org>

	* snmp.hh (class SNMPConnection): 
	* snmp.cc (class SNMPConnection): implemented simple
	C++ wrapper to ucd-snmp library.
	(run): getting system info using library.

	* configure.in: check for ucd-snmp library

2001-05-11  Vadim Kurland  <vadim@voyager.crocodile.org>

	* fwcompiler.c (cmpObjects): now we recognize the case when "Host"
	object has the same address as "Firewall" object and can generate
	appropriate rules

2001-05-10  Vadim Kurland  <vadim@voyager.crocodile.org>

	* policy-text.xsl: implemented negation in policy printing

	* helpers.cc (checkObjectName): allowed ':' in object names

	* iptables.c : two bugfixes:
	  added  "iptables -N temp_rule_name"
	  corrected processing of SNAT rules where translated source is not
	  firewall.

2001-05-06  Vadim Kurland  <vadim@voyager.crocodile.org>

	* StandardRulesDruid2.cc (generateRulesForHostProtection): fixed bug:
	  policy rules should not have direction, but druid used to insert
	  direction in "allow all outgoing connections" rule for host
	  protection firewall

2001-05-05  Vadim Kurland  <vadim@voyager.crocodile.org>

	* iptables.c (parseOptions): bugfix: "--reject-with tcp-reset"
	  requires "-p tcp"

2001-04-30  Vadim Zaliva  <lord@crocodile.org>

	* FWObject.hh (class FWObject): using 'vector' instead
	of 'list'.
	* FWObject.cc (sortChildren): sorting children by name.

2001-04-28  Vadim Zaliva  <lord@crocodile.org>

	* Makefile.in:
	* fwbuilder-packages"
	* fwbuilder.bts:
	* fwbuilder.appmap: Bug-Buddy 1.2 support

2001-04-27  Vadim Zaliva  <lord@crocodile.org>

	* Makefile.in (uninstall): installing bug buddy data files

	* XMLTools.cc: '-' as output file name prints to stdout.

	* PrintDialog.cc (run): fixed bug with passing currenlty
	selected node to XSLT transformation.

2001-04-26  Vadim Zaliva  <lord@crocodile.org>

	* XMLTools.cc (setDTD): 
	* FWObjectDatabase.cc (saveXML): 
	* PrintDialog.cc (run): do not use temporaty files 
	for printing.

2001-04-25  Vadim Zaliva  <lord@crocodile.org>

	* PrintDialog.cc (run): 
	* FWObjectDatabase.cc (saveFile): Print w/o saving file.
	(Task #30300)

2001-04-25  Vadim Kurland  <vadim@voyager.crocodile.org>

	* InterfacePolicy.cc: Added "Srv" to InterfacePolicy

	* Rule.cc (fromXML): now show warning dialog if general policy 
	  rule has interface or direction specified. Rule will be loaded
	  with interface and direction attirbutes erased.

	* fwcompiler.c (scan_Policy): now print error message and bail out
	  if general policy rule has interface or direction specified.

2001-04-24  Vadim Kurland  <vadim@voyager.crocodile.org>

	* configure.in : correct checking for paths for libxml2 and libxslt
	  Now configure will use dynamic libraries if static ones could
	  not be found

2001-04-23  Vadim Kurland  <vadim@voyager.crocodile.org>

	* policy-ascii.xsl (ref): plain ascii printing transformation

2001-04-22  Vadim Kurland  <vadim@voyager.crocodile.org>

	* iptables.c (processTCPorUDP): --tcp-flags and --syn are
	  now supported

	* FWObjectDatabase.xslt: fixed typo 
	  (line 130, was: UPD, should be: UDP)

	* FirewallDialog.cc (on_find_compiler_clicked): implemented
	  "browse" button callback for custom compiler lookup

	* resources.xml.in: ipchains is gone. Now it even won't show up in
	  platforms drop-down menu in FirewallDialog

2001-04-22  Vadim Zaliva  <lord@crocodile.org>

	* XMLTools.cc: protected access to XML/XSLT
	library params with locks.

2001-04-21  Vadim Zaliva  <lord@crocodile.org>

	* PrintDialog.cc (run): XSLT specific code moved
	to XMLTools.cc. As result, XSLT error messsages
	during print are caught and shown to user.

	* XMLTools.hh:
	* XMLTools.cc (transformDocument): complete XSLT/XML
	error interception.

2001-04-19  Vadim Zaliva  <lord@crocodile.org>

	* XMLTools.cc (convert): intercepting conversion
	error messages and reporting them to the user.

2001-04-18  Vadim Zaliva  <lord@crocodile.org>

	* XMLTools.cc (convert): comparing version numbers
	(loadFile): making backup copy of converted files.
	restoring from backup if conversion failed.
	(loadFile): showing confirmation dialog.

	* XMLTools.hh: 
	* XMLTools.hh: migrating data files on load using XSLT transformations.

	* fwbuilder.spec.in (Group): filters and migration dirs added.
	* Makefile.in (install): makefile added

2001-04-16  Vadim Zaliva  <lord@crocodile.org>

	* XMLTools.cc (saveFile): 
	* Preferences.cc (savePrefs): 
	* FWObjectDatabase.cc (saveFile): 
	Consolidated XML files saving, with DTD/doctype
	handling into one place.

	* Makefile.in: installing/uninstalling
	preferences DTD.

	* XMLTools.cc (loadFile): 
	* Preferences.cc (loadPrefs): 
	* FWObjectDatabase.cc (load): 
	Consolidated XML files loading with version checking
	and validation into one place

	* fwbuilder_preferences.dtd.in: minor syntax tweaking

	* fwbuilder_prefs.xml.in: added DOCTYPE

	* fwbuilder_preferences.dtd.in: 
	* configure.in: setting preferences file version
	using autoconf.

	* FWObjectDatabase.cc (saveFile): do not specify
	full path to DTD when saving.

	* fwbuilder.cc (main): 
	* XMLTools.cc (fwbExternalEntityLoader): loading DTD files
	from template directory.

	* translate087preferences.xsl: initial version
	from from Friedhelm Duesterhoeft.

	* translate087objects.xsl: new version 
	from Friedhelm Duesterhoeft.
	added NATRuleOptions
        added FirewallOptions
        added PolicyRuleOptions
        added fixed version 1.0 to FWObjectDatabase

	* fwbuilder_preferences.dtd: DTD for preferences
	file from Friedhelm Duesterhoeft.

	* main_window.cc (on_print_activate): passing id of
	currently selected node to print dialogue

	* PrintDialog.cc (PrintDialog): added controls allowing
	to choose between printing all tree and current object only.
	Passing ID of currenlty selected node to XSLT processor.

2001-04-14  Vadim Kurland  <vadim@voyager.crocodile.org>

	* ICMPServiceDialog.cc (dlg2wrk): ICMP dialog now supports
	  "Any icmp type" and provides verbose ICMP types and codes names.
	  Support for "any icmp" tested with iptables compiler

	* fixes and improvements in fwbuilder.spec - incorporated patches
	  from Carlo Wood

2001-04-13  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Resources.cc (getResourceInt): added couple of convenient
	methods 
	* moved SmallIconsSize and LargeIconsSize from preferences
	to resources

2001-04-11  Vadim Zaliva  <lord@crocodile.org>

	* FWObjectDatabase.cc (load): checking for version attribute.

	* XMLTools.cc (getXmlNodeByPath): moved all xml helpers to
	this class.

2001-04-11  Vadim Kurland  <vadim@voyager.crocodile.org>

	* ObjectTree.cc (TreePopupMenu): added function "Duplicate" to 
	  menu "Edit" and popup menu in the tree

2001-04-10  Vadim Kurland  <vadim@voyager.crocodile.org>

	* configure.in: now statically linking with gtk--,
	  libxml2 and libxslt

2001-04-10  Vadim Zaliva  <lord@crocodile.org>

	* PrintDialog.cc (savePrefs): Printing preferences load/save.
	* fwbuilder_prefs.xml.in: added Printing preferences

2001-04-10  Vadim Kurland  <vadim@voyager.crocodile.org>

	* FWObjectDatabase.cc (saveFile): fixed file saving for libxml2

2001-04-09  Vadim Zaliva  <lord@crocodile.org>

	* Requirements: 
	* configure.in: 
	* Makefile.in (XSLT_CFLAGS): Added libxslt detection and
	usage.

	* configure.in: libxml2 detection

	* translate087objects.xsl: new delivery from Friedhelm Duesterhoeft.
	It conforms DTD v1.40.

2001-04-08  Vadim Zaliva  <lord@crocodile.org>

	* Makefile.in (depend): passing file names to 'makedepend'.
	* PrintDialog.cc (PrintDialog): added

2001-04-08  Vadim Kurland  <vadim@voyager.crocodile.org>

	* StandardRulesDruid.cc (StandardRulesDruid): Druid redesigned. Now
	 druid offers different questions for three network configurations:
	 1. firewall protects local host
	 2. firewall protects only internal network
	 3. firewall protects internal network and DMZ

	* post-glade.pl: modifications to this script allow for incremental
	  compile after GUI changes made by glade

2001-04-07  Vadim Kurland  <vadim@voyager.crocodile.org>

	* StandardRulesDruid.cc: druid corrected for new policy formats
	* New firewall option added: no_iochains_for_any. 
	
2001-04-06  Vadim Kurland  <vadim@voyager.crocodile.org>

	* iptables.c (parseOptions): implemented full support for firewall
	  options and policy rule options

2001-04-04  Vadim Kurland  <vadim@voyager.crocodile.org>

	* iptables.c : now compiler generates separate chain for each
	  policy rule and implements logging and action in this
	  chain. Support for rule options has been implemented too.

	* fwbuilder.dtd : added comment to PolicyRule

	* iptables.c (processInterfacePolicyRule): now correctly processing
	  negation in source and destination in iptables compiler

2001-04-01  Vadim Kurland  <vadim@voyager.crocodile.org>

	* fwbuilder.cc (main): fixed bug when exception thrown while
	loading preferences caused core dump

2001-04-01  Vadim Zaliva  <lord@crocodile.org>

	* Preferences.cc (loadPrefs): versioning of preferences file.

2001-04-01  Vadim Kurland  <vadim@voyager.crocodile.org>

	* iptables.c: iptables compiler now takes into account cases when
	  firewall has multiple interfaces and cases when firewall's
	  interfaces have dynamic address

2001-03-29  Vadim Kurland  <vadim@voyager.crocodile.org>

	* fwcompiler.c Policy attached to firewall interface is now processed
	  before "main" firewall policy

	* iptables.c compiler generates code for chains INPUT and OUTPUT
	  if policy rule applies to the firewall object; otherwise it
	  generates code for the FORWARD chain
	
	
2001-03-25  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Implemented Scratch pad which works as a mirror of the main
	  obejcts tree. All dialogs edit object's copies in scratch pad,
	  which then gets copied back to the main object tree when user
	  clicks "Apply" button. This provides for "Undo" function in all
	  dialogs, including complex ones such as policy editing

	
2001-03-23  Vadim Kurland  <vadim@voyager.crocodile.org>

	* ExecBgr.cc : background operations use exceptions to handle
	errors now. Many improvements have been made to error handling
	and more controls added.
	
2001-03-22  Vadim Kurland  <vadim@voyager.crocodile.org>

	* InterfacePolicy.cc (InterfacePolicy): class for policy attached
	to firewall interface

	* FirewallDialog.cc (showInterfacePolicy): FirewallDialog now
	shows and allows to edit policy attached to firewall interfaces

2001-03-21  Vadim Kurland  <vadim@voyager.crocodile.org>

	* PolicyListItem.cc (PolicyListObjectItem): first attempt at
	  showing objects properties in a pop-up window (using tooltips
	  for now) when mouse is over the object's icon in policy

	* Now using glade-- v0.5.11f (current cvs checkout). This fixed
	  problem with radio buttons in OptionsDialog

2001-03-19  Vadim Kurland  <vadim@voyager.crocodile.org>

	* fwbuilder.dtd (NATRule): added attribute "disabled"

2001-03-18  Vadim Kurland  <vadim@voyager.crocodile.org>

	* fwbuilder.dtd (Host, Firewall): netmask is gone

2001-03-16  Vadim Kurland  <vadim@voyager.crocodile.org>

	* FWIntervalReference.hh (class FWIntervalReference): yet another
	type of reference

2001-03-15  Vadim Kurland  <vadim@voyager.crocodile.org>

	* fwbuilder.dtd (): added %STD_ATTRIBUTES to NAT and Policy
	  created element Option
	  added attribute "dyn" to Interface

	* FirewallOptions.cc (fromXML):  now we store firewall
	 platform-specific options in class FirewallOptions instead of
	 Firewall

2001-03-14  Vadim Kurland  <vadim@voyager.crocodile.org>

	* FWData.hh: this class is used to store "options" data for policy
	and NAT rules and firewall objects

	* RuleElement.cc (RuleElement): all specific rule elements are now
	  inherited from RuleElement and corresponding Group (ObjectGroup,
	  ServiceGroup, IntervalGroup) using virtual inheritance


2001-03-14  Vadim Zaliva  <lord@crocodile.org>

	* FWObjectDatabase.cc (saveFile): adding DOCTYPE to generated XML
	documents.

2001-03-12  Vadim Kurland  <vadim@voyager.crocodile.org>

	* FirewallDialog.cc (dlg2wrk): "dynamic address" is now an option
	for interface, not firewall object

	* Interface.cc (Interface): added attribute "dynamic address"

2001-03-11  Vadim Kurland  <vadim@voyager.crocodile.org>

	* UDPService.hh (class    UDPService): class and file renamed

	* TCPService.hh (class    TCPService): class and file renamed

	* ICMPService.hh (class ICMPService): class and file renamed

	* IPService.hh (class IPService): class and file renamed

	* Host.hh (class Host): class and file renamed

	* Network.hh (class Network): class and file renamed

	* Firewall.hh (class Firewall): class and file renamed

	* Interval.hh (class Interval): class and file renamed

	* RuleElement.hh: new classes RuleElementSrc, RuleElementDst etc.

	* resources.xml.in: platforms and RuleElement descriptors added

	* Group.cc (setAnyElement): few methods added to Group. These methods
	support RuleElement and its descendants

2001-03-10  Vadim Kurland  <vadim@voyager.crocodile.org>

	* RuleSet.hh: new class. Policy and NAT are now derived from
	  RuleSet

2001-03-09  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Resources.cc (getPlatforms): created few new specialized methods
	in Resources

2001-03-07  Vadim Kurland  <vadim@voyager.crocodile.org>

	* FWObject.cc (validateChild): this virtual method checks child's
	type and prevents loops.

	* ServiceGroup.hh (class ServiceGroup): classes ServiceGroup,
	ObjectGroup and IntervalGroup created.

2001-03-04  Vadim Kurland  <vadim@voyager.crocodile.org>

	* FWObject.hh (FWObject*>): method bool isSystem() replaced old
	  Permissions.  Permissions completely eliminated.

	* Makefile.in (install): installs/uninstalls resources file

	* fwbuilder.cc (main): loading resources just before preferences

	* resources.xml: resources data moved from the old preferences
	  template file

	* Resources.hh (class Resources): class Resources created

2001-03-04  Vadim Zaliva  <lord@crocodile.org>

	* FWObjectDatabase.cc (saveFile): setting DTD when saving file.

2001-03-03  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Preferences.cc (getResource): handful of methods for resources
	manipulation. These methods will eventually move to a dedicated
	class Resources.

	* FWObject.cc (checkPermission): now permissions are stored in
	Preferences instead of the object itself. setPermissions method
	will be phased out soon. In the future permissions will move from
	Preferences to Resources.

	* FWObjectDatabase.hh (class FWObjectDatabase): fixed typo in
	definition of struct StandardObjects

2001-02-25  Vadim Zaliva  <lord@crocodile.org>

	* FWReference.cc: 'id' based implementation.

	* FWObject.hh (FWObject*>): getById getByType methods replacing
	old one: get().

2001-02-08  Vadim Zaliva  <lord@crocodile.org>

	* fwbuilder.dtd (Firewall): Firewall has Address optional - it may
	not be defined in certain situations.  Added notion of interval
	groups. Reorganized 'Time' element content.

2001-02-07  Vadim Zaliva  <lord@crocodile.org>

	* fwbuilder.dtd (PolicyRule): 'When' reference add to NAT, PolicyRule.

	* Makefile.in: AnyTime, AnyService classes removed.

2001-02-01  Vadim Zaliva  <lord@crocodile.org>

	* configure.in: version 0.8.7

	* fwbuilder.dtd: this could be called first
	prototype of DTD which we will use in future.

2001-02-01  Vadim Kurland  <vadim@voyager.crocodile.org>

	* fwcompiler.c (main): static arrays eliminated in favor of
	GSList (from glib)

2001-01-31  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Makefile.in (GLIB_CFLAGS): need GLIB CFLAGS to compile fwbuilder.c

2001-01-29  Vadim Zaliva  <lord@crocodile.org>

	* fwbuilder.dtd (TODO): typing of attributes.
	(TODO): compiler-specific options added.

2001-01-28  Vadim Zaliva  <lord@crocodile.org>

	* Makefile.in (distclean): fwbuilder.spec removed.

	* fwbuilder.spec.in (Group): Credits and FAQ files added 
	to RPM.

	* Incorporated patch from
	Jeremy T. Bouse <undrgrid@toons.UnderGrid.net> to
	support libxml2.

2001-01-27  Vadim Zaliva  <lord@crocodile.org>

	* fwbuilder.dtd: major rework of DTD.

2001-01-24  Vadim Kurland  <vadim@voyager.crocodile.org>

	* iptables.c (processSNAT): implemented MASQUERADE versus SNAT support
	  for dynamic addresses

	* README.examples: minor corrections to the example description

2001-01-23  Vadim Zaliva  <lord@crocodile.org>

	* Preferences.cc (Preferences): corrected problem
	with not detecting problem when preferences
	file could not be written.

2001-01-23  Vadim Kurland  <vadim@voyager.crocodile.org>

	* FirewallDialog.cc (on_snmp_get_descr_released): getting firewall
	  description, location and contact via SNMP
	  (wrk2dlg): storing parameters for ipfilter platform

	* snmp.cc (run): SNMP_sysdesc_query implemented

	* iptables.c (prologue): logging parameters implemented

2001-01-22  Vadim Kurland  <vadim@voyager.crocodile.org>

	* FirewallObject.cc (fromXML): loading platform-specific parameters

	* FirewallDialog.cc (FirewallDialog): fixed checkboxes alignment

2001-01-21  Vadim Zaliva  <lord@crocodile.org>

	* all xml files moved to etc. 

2001-01-21  Vadim Kurland  <vadim@voyager.crocodile.org>

	* FirewallDialog.cc (wrk2dlg): new options for ipchains and iptables
	  platforms

	* StandardRulesDruid.cc (on_finish): automatic generation of
	"net_junk" rule disabled

	* FirewallDialog.cc (dlg2wrk): check address validity before we
	  save the data

	* iptables.c (prologue): code produced by this compiler works!

	* FirewallDialog.cc (wrk2dlg): additional parameters for iptables
	  firewalls

2001-01-20  Vadim Kurland  <vadim@voyager.crocodile.org>

	* iptables.c: compiler produces code with no syntax errors

2001-01-20  Vadim Zaliva  <lord@crocodile.org>

	* listicons.sh: rewritten to shell/sed to avoid gawk.
	(for solaris).

2001-01-20  Vadim Kurland  <vadim@voyager.crocodile.org>

	* configure.in (TEMPLATE_DIR): fixed bug where bogus directory
	  path was stored in config.h during RPM build

	* fwbuilder.cc (main): fixed bug when we needed to report error
	  which happened while loading Preferences but MessageDialog in
	  turn needed Preferences to be already loaded.

2001-01-17  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Makefile.in (uninstall): uninstall target created

	* src/gui/main_window.cc (on_saveas1_activate): saveas does not
	erase current loaded object file name anymore, so we can figure
	out current working directory and open file selector dialog in
	that directory

	* src/gui/Preferences.cc (getWdir): this how we chose working
	directory to load/store files and to pass as a parameter to
	compiler: We use directory set in preferences if there was no
	object file loaded yet, and directory where it was loaded from
	otherwise

	* src/gui/NATDialog.cc (NATDialog): fixed bug #128967 

2001-01-16  Vadim Kurland  <vadim@voyager.crocodile.org>

	* examples/README:       added example description file
	  examples/objects.xml:  example objects file
	
2001-01-15  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/gui/PolicyListItem.cc (paint): long comment text line
	  folding implemented

2001-01-15  Vadim Zaliva  <lord@crocodile.org>

	* src/gui/GroupDialog.cc (GroupDialog): compiler warrning avoided.

	* src/gui/BackgroundOp.hh (Data ): run_impl is pure virtual now.
	* src/gui/Rule.cc: removed some debug output to stderr.

2001-01-15  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/gui/PolicyListItem.cc (PolicyListCommentItem): class for Policy
	rule comment

2001-01-15  Vadim Zaliva  <lord@crocodile.org>

	* src/gui/FWObjectDatabase.cc (load): better detection of
	invalid input file structure.

2001-01-15  Vadim Kurland  <vadim@voyager.crocodile.org>

        * changed #include <gnome-xml/parser.h> to #include <parser.h>
	everywhere to resolve build problem with libxml in unusual place
	
	* src/gui/HostObject.cc (HostObject): set default snmp read
	community to "public" as a wide spread default value. If object has
	different community string, its value will be read from XML file and
	will override default.

	* src/gui/NetworkDialog.cc (on_obj_addr_focus_out_event): automatically
	sets suggested netmask based on network's IP address

	* src/gui/HostDialog.cc (dlg2wrk): now checks address syntax

	* src/gui/NetworkDialog.cc (dlg2wrk): now checks address and 
	netmask syntax

	* src/gui/helpers.cc (checkIPaddress): checks IP address validity
	                     (getNaturalNetmask): returns "natural" 
			     classfull netmask for given IP address

2001-01-14  Vadim Kurland  <vadim@voyager.crocodile.org>

	* configure.in (FWB_MICRO_VERSION): set version to 0.8.6
	* configure.in :  Now we define version in configure.in

2001-01-09  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/gui/MessageDialog.hh (class MessageDialog): added new dialog
	  type (error with message text and error code); also changed all
	  static dialog creation methods so they accept const string& as
	  parameters

	* added error dialogs everywhere

2001-01-09  Vadim Zaliva  <lord@crocodile.org>

	* src/gui/main_window.cc: catch loading/saving errors.

	* src/gui/fwbuilder.cc (main): handling initial
	file loading errors.

	* src/gui/FWObjectDatabase.hh (class FWObjectDatabase): 
	* src/gui/FWObjectDatabase.cc: load/save methods
	now throw exceptions.

	* src/gui/fwbuilder.cc (main): handling load preferences
	error.

	* src/gui/OptionsDlg.cc (run): catching save error.

	* src/gui/Preferences.cc: throwing exceptions
	on save/load errors.

	* src/gui/FWException.cc: 
	* src/gui/FWException.hh: Base exception class.

2001-01-08  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/gui/FWObject.cc (setDirty): method sets "dirty" flag for
	  the object and possibly its children.

	* src/gui/FWObject.cc (isDirty): method checks dirty flag for this
	  object and possibly its children

	* src/gui/FWObject.hh (FWObject*>): boolean flag "dirty" - 
	  indicates data has been modified. 

	* src/gui/FWObjectDatabase.cc (saveIfModified): this method checks
	  for unsaved data in the database and asks user whether they want
	  to save it
	
	* src/gui/FWObjectDatabase.cc (load): now checking for unsaved
	  data before loading

	* src/gui/MessageDialog.cc (MessageDialog): new dialog type: 
	  question dialog with three buttons - "Yes", "No", "Cancel"

	* src/gui/main_window.cc (destroy_handler): now checking for unsaved
	  data if main window gets destroyed

	* src/gui/FileSel.cc (FileSel): file selector dialog now opens
	  in the working directory 

	* src/gui/CompileDialog.cc (CompileDialog): passing working dir
	  parameter to compiler via command line ( "-d" )

	* src/gui/OptionsDlg.cc (OptionsDlg): "Working directory" option
	  added to Options dialog

2001-01-08  Vadim Zaliva  <lord@crocodile.org>

	* src/compiler-framework/fwcompiler.c (main): -d option added.

	* src/gui/main_window.cc (on_compile): 
	* src/gui/CompileDialog.hh (class CompileDialog): 
	* src/gui/CompileDialog.cc (run): 
	* src/gui/FWObjectDatabase.cc (getFileName): 
	* src/gui/FWObjectDatabase.hh (class FWObjectDatabase): 
	Passing file name parameter to compiler
	
	* src/gui/main_window.cc (on_new1_activate): 
	* src/gui/FWObjectDatabase.cc: 
	* src/gui/FWObjectDatabase.hh (class FWObjectDatabase): 
	* src/gui/fwbuilder.cc (main): loading file from
	command line (-f, --file).
	Loading default database on startup.

2001-01-08  Vadim Kurland  <vadim@voyager.crocodile.org>

	* configure.in (DOCDIR): checking for docs directory ( /usr/doc
	  versus /usr/share/doc )

	* src/gui/DialogPlugin.cc: dialog text typo corrected

	* src/gui/FWObjectDatabase.cc (FWObjectDatabase): now setting 
	  permissions for objects created as a part of empty database

	* src/gui/FWObject.cc (setPermission): setPermission method
	  added

2001-01-07  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/iptables/iptables.c: first version of iptables compiler,
	  based on ipchains compiler

	* src/gui/fwbuilder_prefs.xml: added definition for iptables
	  Policy and NAT

	* configure.in (PACKAGE_PIXMAPS_DIR): added iptables support

	* src/iptables/Makefile.in: added directory and Makefile.in for
	  iptables. Started development for iptables

2001-01-07  Vadim Zaliva  <lord@crocodile.org>

	* src/gui/main_window_menu.cc (build_menu): Objects renamed to Insert.

	* src/compiler-framework/fwcompiler.c (main): restring changes
	lost in CVS reorg.

	* src/gui/FWObjectDatabase.cc (setFileName): 
	* src/gui/main_window.hh (class Main_window): 
	* src/gui/main_window.cc (on_saveas1_activate):
	(on_new1_activate): 
	* src/gui/main_window2.cc (OpenObject): Save, SaveAs, New implemented.

2001-01-06  Vadim Zaliva  <lord@crocodile.org>

	* src/gui/main_window_menu.cc (build_menu): "Objects" menu
	created.

	* src/gui/fwbuilder.cc (main): do now load default files
	on startup.

	* src/gui/Preferences.hh: misc cleanup
	* src/gui/Preferences.cc (Preferences): copying default preferences file
	to ~/.fwuilded. No longer we create ~/fwbuilder directory.

2001-01-05  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/gui/ObjectTree.cc (on_pasteobj): checks permissions
	                        (on_cutobj): check permissions
				(on_copyobj): check permissions

	* src/gui/FWObject.hh (FWObject*>): added set of permissions for
	FWObject

	* src/gui/ObjectTree.cc (TreePopupMenu): pop-up menu has its items
	  deactivated if object can not be removed or copied

	* src/gui/ListOfIcons.cc (on_button_release_event): pop-up menu
	has its items deactivated just like that in ObjectTree.cc

	* src/gui/GroupDialog.cc (dlg2wrk): fixed bug in object removal

	

2001-01-04  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Makefile.in (distclean): now even cleaner

	* src/gui/main_window.cc (Main_window): fixed bug where program
	  used to give Gtk-CRITICAL warning on exit ( Bug ID 127496 )

2001-01-04  Vadim Zaliva  <lord@crocodile.org>

	* fwbuilder.spec: version 0.8.3 released

2001-01-03  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Makefile.in (rpm): added makefile target "rpm". This will build
	  snapshot usoing cvs export and then run script build_rpm.sh
	* build_rpm.sh: this script will build rpms

	* Version number for snapshot is taken from fwbuilder.spec
	  file. To generate snapshot and tar.gz for RPM one needs to edit
	  fwbuilder.spec file and then do "make tar"

2001-01-03  Vadim Zaliva  <lord@crocodile.org>

	* fwbuilder.spec: created SPEC file for building RPM package

	* doc/Makefile (install): install-doc is separate target

	* src/gui/Tools.cc: 
	* src/gui/Tools.hh: Added new files for misc tools

	* src/gui/Preferences.cc (getNodeByPath): 
	* src/gui/PolicyListElement.cc (popup_menu): 
	* src/gui/GroupDialog.cc (GroupDialog): 
	* src/gui/ListOfIcons.cc (on_button_release_event): 
	(on_button_release_event): replaced g_new/g_free/g_strdup
	with new, delete, cxx_strdup.

	* src/gui/HostObject.cc (get_if_names): 
	* src/gui/FWObject.cc (getPath): 
	(FWObject): 

	* src/compiler-framework/fwcompiler.h: Copyright added.

	* src/compiler-framework/Makefile.in: install goal added.

	* src/ipfilter/Makefile.in: 
	* src/ipchains/Makefile.in: 'install' goal corrected.

2001-01-02  Vadim Kurland  <vadim@voyager.crocodile.org>

	* merging fwbuilder and fwcompiler in one CVS tree
	* added Makefile.in in doc subdir. Documents will be installed
	  in $(prefix)/doc
	
2001-01-02  Vadim Zaliva  <lord@crocodile.org>

	* src/MessageDialog_glade.cc: removed icon init to avoid
	runtime warnings.

2000-12-27  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/*.cc: converted to isA and cast methods everywhere

2000-12-27  Vadim Zaliva  <lord@crocodile.org>

	* src/*.hh: isA() and cast() methods added to all
	subclasses of FWObject.

	* src/ListOfIcons.cc (addObject): fixed chrash when showing group
	with references.

2000-12-26  Vadim Zaliva  <lord@crocodile.org>

	* src/Makefile.in (install): install also installs icons

2000-12-25  Vadim Zaliva  <lord@crocodile.org>

	* Makefile.in (distclean): 'distclean' goal added.

2000-12-23  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/Preferences.cc (Preferences): now program looks for
	  fwbuilder_prefs.xml and objects_init.xml in the directory
	  defined by INIT_DIR

	* config.h.in: added #define for INIT_DIR

	* src/Makefile.in (PACKAGE_PIXMAPS_DIR): PACKAGE_PIXMPAP_DIR is
	  now defined relatively to $prefix

2000-12-21  Vadim Kurland  <vadim@voyager.crocodile.org>

	* added copyright notice to all .cc and .hh files, except those
	  generated by glade
	
	* src/Rule.cc (Rule): read "hidden" status from preferences
	  in constructor

	* src/RuleElement.cc (RuleElement): read "hidden" status from
	  preferences in constructor

2000-12-20  Vadim Kurland  <vadim@voyager.crocodile.org>

	* acsite.m4: redefined macro AC_TRY_RUN_NATIVE to fix an error
	  with gcc 2.96 (originally macro defined exit(int) which
	  conflicted with previous definition in
	  /usr/include/stdlib.h). gcc 2.91 just issued warning on this,
	  while gcc 2.96 considered this to be an error

	* configure.in:  rule checking for /usr/include/g++-3 has been refined.
	  If system has been upgraded from RH 6.2 to RH 7.0 then both 
	  /usr/include/g++-2 and /usr/include/g++-3 exist. We should pick 
	  only  /usr/include/g++-3 in this case


2000-12-19  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/fwbuilder_prefs.xml.in: fwbuilder_prefs.xml is now generated
	  by configure

	* src/Makefile.in (snapshot): added target "snapshot"

	* src/PolicyListItem.cc (paint): switched to queue_draw everywhere 
	  and updated drawing method to use Gdk_GC consistently

	* src/NAT.cc (updateMainMenu): enable/disable main menu items

	* src/Policy.cc (updateMainMenu): enable/disable main menu items

	* src/FirewallObject.cc (updateMainMenu): enable/disable main menu
	  items in "Policy"

2000-12-18  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/FWObject.cc (updateMainMenu): this virtual method
	  enables or disables appropriate main menu items.

	* aclocal.m4: added functions which test for particluar headers:
	  AC_TEST_FILES and AC_SEARCH_HEADERS

	* Makefile.in: subdirectories processing is done through .PHONY target
	 
	* doc/Requirements: updated requirements
	* bugfixes
	
2000-12-16  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/StandardRulesDruid.cc (on_finish): bugfixes

	* doc/README: descriptions of all object types added

	* AUTHORS (Credits): updated AUTHORS file

	* src/objects_init.xml: added group "Time" and object "AnyTime"

	* src/fwbuilder_prefs.xml: definition for TIME object; added
	  time to policy definition for all supported platforms

	* src/AnyTime.cc: initial implementation

	* src/TimeObject.cc: Initial implementation of TimeObject

	* src/main_window.cc (Main_window): left and right panels in the main
	  window simplified and are not built by glade anymore

2000-12-15  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/main_window_menu.cc (build_menu): another way to build menus.

	* src/main_window.cc (extractPolicyList): trying to avoid excessive
	  use of dynamic_cast. I now tell PolicyDialog from NATDialog using
	  widget name
	* dynamic_cast replaced everywhere, now using getTypeName()

2000-12-14  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/fwbuilder.cc (main): no need to initialize imlib if
	  compile with gnome support - gnome_init does it

2000-12-14  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Global key accelerator group implemented
	
2000-12-14  Vadim Zaliva  <lord@crocodile.org>

	* src/GroupDialog_glade.cc (N_): get rid of one more nasty
	compilation warnings.

2000-12-13  Vadim Kurland  <vadim@voyager.crocodile.org>

	* gnome-wrappers/iconlist.{cc,hh}  :  wrapper for gnome widget
	  icon_list
	* GroupDialog now uses our wrapper class IconList
	* Doubleclick on the object in a group view opens object
	
2000-12-13  Vadim Zaliva  <lord@crocodile.org>

	* src/main_window_menu.cc (GNOMEUIINFO_MENU_NEW_SUBTREE): workaround
	to solve compilation problem under gcc 2.96

	* src/Makefile.in ($(GNOME_WRAPPERS_LIB)): add dependency 
	to gnome-wrappers/*.o which does not work.

	* src/Iconlist.cc (IconList): 
	* src/TextDlg.cc (TextDlg): 
	* src/BackgroundOpDisplay.cc (ConnectSignals): 
	* src/NATDialog.cc (NATDialog): 
	* src/PolicyDialog.cc (PolicyDialog): 
	* src/PolicyList.cc (PolicyList): 
	* src/PolicyListItem.cc (PolicyListItem): 
	* src/PolicyListElement.cc (PolicyListRuleNum): 
	(constructor): 
	* src/GroupDialog.cc (GroupDialog): 
	* src/About.cc (About): gcc 2.96 compilatiom pb. Corrected syntax
	of taking address of method.

	* src/PolicyListElement.cc (request_focus): 
	focus() renamed to request_focus()

	* src/PolicyListElement.hh: get_row(), get_col() return type added.
	focus() renamed to request_focus()

	* src/PolicyListElement.cc (popup_menu): unused variable pl commented

	* src/Preferences.cc (getNodeByRelPath): commented out unused method.

	* configure: removed exit() method prototype which conflicts
	with one from stdlib.

	* src/PolicyList.hh: 
	* src/PolicyList.cc (request_focus): focus() renamed to request_focus()

	* src/gnome-wrappers/wrappers.hh: undef syntax corrected
	to avoid compiler warnings.

	* src/Makefile.in (clean): clean target added

2000-12-12  Vadim Kurland  <vadim@voyager.crocodile.org>

	* configure.in, Makefile.in reimplemented. Now we do not use
	  those built by glade for us.
	
2000-12-11  Vadim Kurland  <vadim@voyager.crocodile.org>

	* FWObject::map is now map<const gchar*,const gchar*,ltstr>
	* FWObject can now store data of three types: String, Int, Bool
	
2000-12-3  Vadim Kurland  <vadim@voyager.crocodile.org>

	* PolicyListItem drawing method reimplemented using plain
	  gdk routines. Everything works just fine.
	* bugfixes
	* ICMP code -1 now means any code. Compiler generates 
	  code which takes only icmp type into consideration

2000-12-2  Vadim Kurland  <vadim@voyager.crocodile.org>
	
	* Class PolicyListItem completely reimplemented as custom widget
	  derived from Gtk::Widget. It turned out to be surprisingly 
	  simpler to do it this way.
	* Class LabelWithEffects is not needed anymore; files have been
	  removed from CVS
	* Still working on a bug where object tree lines lose color once
	  policy has been displayed. Something is wrong with style or
	  Gdk_GC processing in PolicyListItem

2000-12-1  Vadim Kurland  <vadim@voyager.crocodile.org>
	
	* Implemented "disable rule" function in GUI
	* LabelWithEffects can now display text string with pixmap background
	  ( used in PolicyListRuleNum class to display rule number which
	    can be double-crossed if rule is disabled )

2000-11-29  Vadim Kurland  <vadim@voyager.crocodile.org>
	
	* Policy rule drag&drop methods now use actual rule screen 
	  snapshot as a drag icon
	* Added some imlib image manipulation to this snapshot to make 
	  it easily distinguishable from the rest of the picture on 
	  the screen. 

2000-11-28  Vadim Kurland  <vadim@voyager.crocodile.org>
	
	* Got rid of "path" and all supporting methods. Now we keep
	  pointer to parent in each FWObject, which allows us to easily
	  reconstruct path string on demand
	* pop-down menu appears on mouse button release (instead of button
	  press) in ObjectTree, PolicyList and IconsList
	* added attribute "hidden". Now each object can be made
	  hidden, so it won't show up in ObjectTree and groups. There is
	  no GUI mechanism to set this attribute as of yet

2000-11-26  Vadim Kurland  <vadim@voyager.crocodile.org>

        * algorithm refinements for "any" objects and services. Now
          GUI inserts reference to the object "Any" instead of keeping
          rule element empty. This simplified somewhat algorithms for
	  objects removals and additions in rule elements as we now 
	  gaurantee that rule elements are never empty 
	* doc/README updated with compilation and installation instructions
	* Makefile.am updated for proper binary and *.xml files install,
	  as well as icons install. See README for details. 

2000-11-25 Vadim Kurland  <vadim@voyager.crocodile.org>

	* Druid now helps to build more or less complete basic policy.
	  If you don't know where to start with new firewall - start
	  with menu item "Help build firewall policy"
	* Object can now be dragged between policy elements
	* Menu item "compile" now actually calls compiler in the background
	  and shows its progress or errors in the dialog window.
	* policy rules can now be dragged to swap places and move rules
	  up or down.

2000-11-24 Vadim Kurland  <vadim@voyager.crocodile.org>

	* FWObject is now derived from list, not map.  This made 
	  manipulation of the order in which children are presented 
	  much easier. This change was needed for proper implementation
	  of Policy rules addition and insertion
	* some changes to fwbuilder_prefs.xml
	* bugfixes

2000-11-13 Vadim Kurland  <vadim@voyager.crocodile.org>

	* Druid is now called "Standard Protection Rules Druid" and
	  generates three types of rules:
	    - anti-spoofing rule
	    - rule dropping "short" fragments
	    - rule dropping "network junk", that is packets coming from
	      outside but not headed for our network
	* Druid consists of three pages, plus "final" page
	* program now automatically creates working directory
	  in user's home and copies default preferences file and initial
	  objects database there. See doc/README
	* Again new icons


2000-11-12 Vadim Kurland  <vadim@voyager.crocodile.org>

	* Now all object dialogs check object's name for syntax before
	  saving. Name must consist of alphanumeric characters and should
	  not start with number

2000-11-11 Vadim Kurland  <vadim@voyager.crocodile.org>

	* New policy element added: "Direction". This, together with "Target",
	  helps build anti-spoofing and other direction-dependant rules.
	* Anti-spoofing druid now actually builds rule on top of the policy
	* Preferences dialog now allows turning on and off visibility of 
	  individual policy elements
	* Original icons with transparent background restored
	* ICMP code and type terminology fixed

2000-11-9  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Preferences and database are stored in user's home directory now

2000-11-8  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Converting icons to .png using imlib

2000-11-7  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Druid for generating anti-spoofing rules implemented

2000-11-4  Vadim Kurland  <vadim@voyager.crocodile.org>

	* gnome-wrappers added. Dependency on gnome-- eliminated
	* preparations for "anti-spoofing rules" druid
	* main menu generating code streamlined using GnomeUIInfo for all
	  menu items and submenus
	* bugfixes

2000-11-3  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Some new icons


2000-11-1  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Icons can be of two different sizes now: large ones for
	  object dialogs and small ones for policy
	* Preferences code streamlined

2000-10-31  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Main menu code rewritten. I use gnome-- libraries and code
	  for menus and some other things. Getting ready to use "Druid"
	  widget for firewall policy Wizard
	* Got rid of dynamic menu item.  It was ugly from UI standpoint
	* "About" dialog added

2000-10-29  Vadim Kurland  <vadim@voyager.crocodile.org>

	* PortRange object is gone, use TCP and UDP instead
	* IP Object and dialog created

2000-10-27  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Additional icons

2000-10-24  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Preferences dialogs for different firewall platforms have been
	  implemented
	* Preferences for ipchains firewall implemented in both builder 
	  and compiler

2000-10-19  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Interfaces can now be marked as "external" and "internal" via GUI
	  This feature will help implementing NAT on various platforms
	  (such as ipchains, cisco)
	* NAT rules are now properly displayed and can be edited and stored.

2000-10-19  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Bugfixes in PolicyList

2000-10-15  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Bugfixes

2000-10-14  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Bugfixes
	* Now BuiltinDialog may appear with or without buttons "Save" and
	  "Undo" depending on the object definition in fwbuilder_pref.xml
	* "Move rule up" and "Move rule down" implemented

2000-10-12  Vadim Kurland  <vadim@voyager.crocodile.org>

	* completely got rid of direct references to rule descriptors in
	  fwbuilder.xml. Now we recalculate descriptors for policies, rules
	  and rule elements when we need them

2000-10-11  Vadim Kurland  <vadim@voyager.crocodile.org>

	* unnessesary references to rule and rule element descriptors
	  removed from XML representation. Now these descriptors are
	  being calculated when respective objects are built. This makes
	  XML file much cleaner


2000-10-10  Vadim Kurland  <vadim@voyager.crocodile.org>

	* XML paths for all objects and preferences now include 
	  root element (FWObjectDatabase or FWBuilderPreferences). This
	  makes design more systematic and allows for code reuse between
	  builder and compiler.

2000-10-09  Vadim Kurland  <vadim@voyager.crocodile.org>

	* minor changes to rule element descriptors. Adjustments for
	  compiler

2000-10-08  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Descriptors now are part of preferences.

2000-10-08  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Changes in XML storage: now XML nodes are named after
	  respective objects, with object type stored as attribute "_type"
	  This is needed to eliminate confusion between two different ways 
	  to handle object's path in the tree: one way is to compose
	  path from XML nodes names, another way is to use object's names.
	  We will assume path consists of XML nodes names, which are
	  now the same as corresponding objects names.

	  Next big step will be moving subtree "/Descriptors/" from
	  the main tree to Preferences. We already working with descriptors
	  using their path, so it won't be difficult to rewrite relevant
	  pieces of code to use preferences instead.

2000-10-07  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Accomodations for the policy compiler. Paths to compilers 
	  for all supported platforms are now stored in Preferences

	* Class Preferences now keeps data in XML tree instead 
	  of map<string,string>. Preferences should be accessed via
	  Preferences::getOpt method by their XML tree path
	
2000-10-01  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Further code refinement in rule element negation

2000-09-30  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Rule element negation implemented in GUI

2000-09-26  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Code cleanup. XPM icon file names for all object types are 
	now stored in XML file

2000-09-05  Vadim Kurland  <vadim@voyager.crocodile.org>

	* New class:  TypeDescriptor. Objects of this class contain
	descriptive information for various object types used in the system.
	Objects get stored in the static part of XML database under 
	"Descriptors". Verbose description for a given type can be retrieved
	using the following code fragment:

	here s contains type name ("FW") and ss will get description 
	("Firewall") from the type descriptor

	FWObject *typedsc=FWObjectsDatabase::db->get("/Descriptors/Types/"+s);
	ss=typedsc->getStr("description");

	GroupDialog shows allowed group members types using verbose 
	descriptions taken from TypeDescriptor for each type


2000-09-04  Vadim Kurland  <vadim@voyager.crocodile.org>

	* Classes ICMPObject, UDPObject and TCPObject have been adopted for
	storing data in XML

	* Class Group has got a list of types allowed for its children. 
	It is comma separated list of type names stored as string attribute 
	"allowed_types"  and provides for easy search and checks by name. 
	GroupDialog now shows all allowed types in the dialog. Upon creation
 	each group inherits allowed types from its ancestor, although group 
	may have this set trimmed for stricter control

	* New method:  FWObject::getParent(): looks for a parent of given
	object using its path

2000-09-02  Vadim Kurland  <vadim@voyager.crocodile.org>

	* All type comparisons converted to getTypeName(). FWObject::GetType()
	is obsolete now and is scheduled for removal. enum FWObjectType is also
	going to be phased out

	* RuleElementDescriptor now holds list of allowed object type names
	instead of integer with a bitmask of values from enum FWObjectType

	* class FWObjectDialog has been created. This is generic dialog for
	all classes which are not supposed to be visible for regular user.
	ObjectTree shows these objects after pressing magic key "F6", so 
	this dialog can then be used to open and potentially edit objects
	XML attributes.

	* bug fixes in the area of interfaces processing for both hosts and
	firewalls


2000-08-27  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/FWObjectClipboard.cc: FWObjectClipboard is now derived from	
	FWObjectReference

2000-08-27  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/fwbuilder.xml: Each Policy, Rule and RuleElement have now an
	attribute pointing to the corresponding descriptor as follows:

	Policy      -> RuleDescriptor        (record RD in xml file)
	Rule        -> RuleDescriptor        (record RD in xml file)
	RuleElement -> RuleElementDescriptor (record RED in xml file)

	This simplified descriptors manipulation significantly and allowed us
	to get rid of bunch of calls to FWObject::get
	
	* src/FWObject.cc (xfind): Method deprecated in favor of FWObject::get
	Code has been cleaned so FWObject::xfind is not used anymore.

2000-08-27  Vadim Kurland  <vadim@voyager.crocodile.org>

	* src/FWObject.cc (xfind): Method deprecated in favor of FWObject::get
	Code has been cleaned so FWObject::xfind is not used anymore.

2000-08-21  Vadim Kurland  <vadim@tahoe.crocodile.org>

        * src/Policy.cc (AppendRuleAfter): Now adding rules above and below
        of the given rule work properly

2000-08-20  Vadim Kurland  <vadim@tahoe.crocodile.org>

        * src/PolicyList.hh: Individual classes for standard policy elements
        have been added. These are:

        PolicyListRuleAction
        PolicyListRuleLog
        PolicyListRuleTarget
        PolicyListRuleComment
        

        * src/fwbuilder.xml: Following classes where converted to the new
        system of tree-like data storage:

        RuleDescriptor (Policy rule descriptor )
        RuleElementDescriptor (rule element descriptor)
        Rule (policy rule)
        RuleElement
        Policy

        data storage and loading for these classes have been implemented 
        and tested.

        This is the fisrt time we can store firewall policy and then load 
        it back!

        
        * src/ObjectTree.cc (on_key_press_event): 
        Secret keys for the left panel:

        press F5 to rebuild the tree 
        press F6 to toggle boolean flag show_all and rebuild the tree. 

        The "show_all" flag, if true, forces tree to show all the elements 
        ignoring their showInTree method

        * src/PolicyListElement.cc: PolicyListElement methods are now in 
        a separate file


2000-08-17  Vadim Kurland  <vadim@tahoe.crocodile.org>

        * src/FWObject.cc (fromXML): added protected method fromXML. I need
        to be able to initalize some fields in FWObjectsDatabase
        before we load data from XML file. Since XML parsing used to happen in
        the FWObject constructor, I could not initialize "path" field for
        the database object before actual XML parsing would happen. Hence
        method fromXML
        (addChild): This is where we keep track of the full path to the object.
        Every time we add object to another object, we take path of the parent,
        add slash "/" and name of the child at the end. The result gets stored
        in the child using setPath method. This way we keep track of the full
        path to every object in the database.  For this algorithm to work, 
        the "root" object - database itself - has to be "seeded" with its path
        name "/Database". That is why we needed fromXML method (see above)


2000-08-17  Vadim Zaliva  <lord@crocodile.org>

	* src/FWObject.hh (FWObject*>): find renamed to xfind to avoid name
	conflict with STL method.
	(FWObject*>): set/get Str/Int using const and reference to pass names.

	* src/FWObjectDatabase.cc (load): 
	* src/FWObject.cc (resolveReferences): 
	resolving references on load

	* src/FWObject.hh: 
	* src/FWObjectReference.hh: 
	* src/FWObjectReference.cc: 
	New tree object - reference to another one

2000-08-16  Vadim Zaliva  <lord@crocodile.org>

	* src/fwbuilder.xml: sample data file

	* src/Group.hh: 
	* src/Group.cc: 
	* src/FWObjectDatabase.cc: 
	* src/FWObjectDatabase.hh: 
	* src/FWObject.cc:
	* src/FWObject.hh:
	* src/HostObject.cc: 
	* src/HostObject.hh: 
	Loading xml files sekeleton.

2000-08-15  Vadim Zaliva  <lord@crocodile.org>

	* src/FWObjectDatabase.hh (class FWObjectsDatabase): removed methods
	which are already present in FWObjects.
	object_db variable removed and replaced with singelton.

2000-08-14  Vadim Zaliva  <lord@crocodile.org>

	* src/FileSel.cc (FileSel): default extension changed to .xml

	* src/FWObjectDatabase.cc (saveAs): database is now saved as root of
	xml tree.

	* src/FWObject.hh: FWObjectType converted to enum. Added value DATABASE.

	* src/FWObject.cc (toXML): saving to XML uses different schema - not nodes
	are object types.

	* src/FWObject.hh (FWObject*>): Find renamed to find() to matching coding
	style.

	* src/FWObject.cc (toXML): saving method added.

	* src/FWObjectDatabase.cc (saveAs): remembering filename we were loading to
	to use it for saving. Saving XML implemented.

2000-07-27  Vadim Zaliva  <lord@crocodile.org>

	* src/Preferences.cc (LoadPrefsFile): loading preferences from XML file.
	(SavePrefsFile): saving preferences in XML.

	* src/Preferences.hh: loadPrefsFile protected method added

	* src/Makefile.in (LIBS): added list of libraries detected by autoconf
	to link flags.

	* src/fwbuilder_prefs.xml: created this file for storing user preferences.

	* configure.in: added check for libxml

2000/4/29 23:51:53 PDT
        policy sheet implemented as CList with multiple lines per one rule

2000/4/30 12:58:07 PDT
        gen_popup_menu (generic popup menu class) implemented

