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 2000/11/25 13:35:36 PST update files from .glade file 2000/11/25 13:35:53 PST update files from .glade file 2000/11/25 13:42:03 PST update files from .glade file 2000/11/25 13:42:26 PST update files from .glade file 2000/11/25 14:05:22 PST update files from .glade file 2000/11/25 14:12:19 PST update files from .glade file 2000/11/25 14:17:45 PST update files from .glade file 2000/11/25 14:52:01 PST update files from .glade file 2000/11/25 14:52:34 PST update files from .glade file 2000/11/25 14:53:16 PST update files from .glade file 2000/11/25 15:16:48 PST update files from .glade file 2000/11/30 0:11:16 PST update files from .glade file 2000/12/1 14:01:00 PST update files from .glade file 2000/12/3 23:20:01 PST update files from .glade file 2000/12/10 10:57:30 PST update files from .glade file 2000/12/10 11:41:13 PST update files from .glade file 2000/12/10 12:00:42 PST update files from .glade file 2000/12/10 12:04:47 PST update files from .glade file 2000/12/10 12:14:29 PST update files from .glade file 2000/12/10 12:15:55 PST update files from .glade file 2000/12/10 12:28:51 PST update files from .glade file 2000/12/10 12:29:07 PST update files from .glade file 2000/12/10 12:31:22 PST update files from .glade file 2000/12/11 22:14:41 PST update files from .glade file 2000/12/11 22:39:28 PST update files from .glade file 2000/12/11 22:57:08 PST update files from .glade file 2000/12/11 23:11:43 PST update files from .glade file 2000/12/11 23:52:09 PST update files from .glade file 2000/12/11 23:56:01 PST update files from .glade file 2000/12/16 1:14:00 PST update files from .glade file 2000/12/16 1:15:53 PST update files from .glade file 2000/12/16 1:29:13 PST update files from .glade file 2000/12/16 1:33:19 PST update files from .glade file 2000/12/16 2:04:55 PST update files from .glade file 2000/12/16 13:26:53 PST update files from .glade file 2000/12/16 13:35:44 PST update files from .glade file 2000/12/16 14:25:45 PST update files from .glade file 2000/12/16 21:35:07 PST update files from .glade file 2000/12/21 22:55:28 PST update files from .glade file 2000/12/21 23:45:51 PST update files from .glade file