diff --git a/VERSION b/VERSION index a5b4e35b0..1dbeeca52 100644 --- a/VERSION +++ b/VERSION @@ -7,7 +7,7 @@ FWB_MICRO_VERSION=0 # build number is like "nano" version number. I am incrementing build # number during development cycle # -BUILD_NUM="3488" +BUILD_NUM="3489" VERSION="$FWB_MAJOR_VERSION.$FWB_MINOR_VERSION.$FWB_MICRO_VERSION.$BUILD_NUM" diff --git a/VERSION.h b/VERSION.h index 88ed40ce3..ba147254a 100644 --- a/VERSION.h +++ b/VERSION.h @@ -1,2 +1,2 @@ -#define VERSION "4.2.0.3488" +#define VERSION "4.2.0.3489" #define GENERATION "4.2" diff --git a/packaging/fwbuilder-static-qt.spec b/packaging/fwbuilder-static-qt.spec index e5ef9d62d..53851521d 100644 --- a/packaging/fwbuilder-static-qt.spec +++ b/packaging/fwbuilder-static-qt.spec @@ -3,7 +3,7 @@ %define name fwbuilder -%define version 4.2.0.3488 +%define version 4.2.0.3489 %define release 1 %if "%_vendor" == "MandrakeSoft" diff --git a/packaging/fwbuilder.control b/packaging/fwbuilder.control index 7ba10c26a..be8385790 100644 --- a/packaging/fwbuilder.control +++ b/packaging/fwbuilder.control @@ -4,6 +4,6 @@ Replaces: fwbuilder (<=4.1.1-1), fwbuilder-common, fwbuilder-bsd, fwbuilder-linu Priority: extra Section: checkinstall Maintainer: vadim@fwbuilder.org -Version: 4.2.0.3488-1 +Version: 4.2.0.3489-1 Depends: libqt4-gui (>= 4.3.0), libxml2, libxslt1.1, libsnmp | libsnmp15 Description: Firewall Builder GUI and policy compilers diff --git a/packaging/fwbuilder.spec b/packaging/fwbuilder.spec index 261f14e8f..8b37b0b23 100644 --- a/packaging/fwbuilder.spec +++ b/packaging/fwbuilder.spec @@ -1,6 +1,6 @@ %define name fwbuilder -%define version 4.2.0.3488 +%define version 4.2.0.3489 %define release 1 %if "%_vendor" == "MandrakeSoft" diff --git a/src/libgui/DiscoveryDruid.cpp b/src/libgui/DiscoveryDruid.cpp index 89ba2a3f6..0b817e45e 100644 --- a/src/libgui/DiscoveryDruid.cpp +++ b/src/libgui/DiscoveryDruid.cpp @@ -442,7 +442,7 @@ void DiscoveryDruid::changedSelected( const int &page ) case 1: // Reading file in hosts format { - setNextEnabled(page,false); + setNextEnabled(page, false); changedHostsFileName(); m_dialog->filename->setFocus(); break; @@ -451,8 +451,8 @@ void DiscoveryDruid::changedSelected( const int &page ) case 2: // import config { m_dialog->obj_name->setFocus(); - setBackEnabled(page,true); - setFinishEnabled(page,false); + setBackEnabled(page, true); + setFinishEnabled(page, false); break; } @@ -563,7 +563,18 @@ void DiscoveryDruid::changedSelected( const int &page ) setBackEnabled(page,false); cancelButton->hide(); createRealObjects(); - setFinishEnabled(page,true); + setNextEnabled(page, false); + setFinishEnabled(page, true); + finishButton->setFocus(); + break; + } + + case 14: // Network zones for PIX + { + setBackEnabled(page, false); + cancelButton->hide(); + setNextEnabled(page, false); + setFinishEnabled(page, true); finishButton->setFocus(); break; } @@ -571,7 +582,7 @@ void DiscoveryDruid::changedSelected( const int &page ) default : {} } - FromPage=page; + FromPage = page; } void DiscoveryDruid::startBackgroundProcess() @@ -669,9 +680,9 @@ void DiscoveryDruid::getNameServers() void DiscoveryDruid::setDiscoveryMethod_file() { - current_task=BT_HOSTS; m_dialog->processname->setText(tr("Hosts file parsing ...")); - for (int i=0;iprocessname->setText(tr("DNS zone transfer ...")); - current_task=BT_DNS; - for (int i=0;iprocessname->setText(tr("Network discovery using SNMP ...")); - current_task=BT_SNMP; - for (int i=0;iprocessname->setText(tr("Import configuration from file ...")); - current_task=BT_IMPORT; - for (int i=0;iimport_platform->currentItem() - string platform = ""; - switch (m_dialog->import_platform->currentIndex()) - { - case IMPORT_IOS: platform = "iosacl"; break; - case IMPORT_IPT: platform = "iptables"; break; - case IMPORT_PIX: platform = "pix"; break; - } + string platform = selectedPlatform(); // // ConfigImport "owns" buffer - it is deleted @@ -808,6 +813,18 @@ void DiscoveryDruid::startConfigImport() } } +string DiscoveryDruid::selectedPlatform() +{ + string platform = ""; + switch (m_dialog->import_platform->currentIndex()) + { + case IMPORT_IOS: platform = "iosacl"; break; + case IMPORT_IPT: platform = "iptables"; break; + case IMPORT_PIX: platform = "pix"; break; + } + return platform; +} + InetAddr DiscoveryDruid::getNS() { string ns; @@ -1657,9 +1674,11 @@ void DiscoveryDruid::customEvent(QEvent *event) case BT_HOSTS: loadDataFromFile(); break; + case BT_IMPORT: loadDataFromImporter(); break; + default: break; } @@ -1685,10 +1704,22 @@ void DiscoveryDruid::customEvent(QEvent *event) nextButton->setEnabled(false); } break; + case BT_IMPORT: - setFinishEnabled(currentPage(),true); - finishButton->setFocus(); + { + // if imported PIX, need to show one more page to select network zones + if (selectedPlatform() == "pix") + { + setNextEnabled(currentPage(), true); + setFinishEnabled(currentPage(), false); + } else + { + setNextEnabled(currentPage(), false); + setFinishEnabled(currentPage(), true); + finishButton->setFocus(); + } break; + } default: break; } diff --git a/src/libgui/DiscoveryDruid.h b/src/libgui/DiscoveryDruid.h index 7716f53c8..2a4160c43 100644 --- a/src/libgui/DiscoveryDruid.h +++ b/src/libgui/DiscoveryDruid.h @@ -238,6 +238,8 @@ private: libfwbuilder::InterfaceData *in, bool skip_ip_address_check); void addToLog(const QString &buf); + + std::string selectedPlatform(); public: @@ -320,11 +322,12 @@ public slots: }; -const int WIZARD_PAGES=13; -const bool WIZARD_FILE_PAGES[] = {1,1,0,0,0,0,0,0,1,0,1,0,1,1}; -const bool WIZARD_DNS_PAGES[] = {1,0,0,1,1,0,0,0,1,0,1,0,1,1}; -const bool WIZARD_SNMP_PAGES[] = {1,0,0,0,0,1,1,1,1,1,1,1,1,1}; -const bool WIZARD_IMPORT_PAGES[] = {1,0,1,0,0,0,0,0,1,0,0,0,0,0}; + +const int WIZARD_PAGES = 15; +const bool WIZARD_FILE_PAGES[] = {1,1,0,0,0,0,0,0,1,0,1,0,1,1,0}; +const bool WIZARD_DNS_PAGES[] = {1,0,0,1,1,0,0,0,1,0,1,0,1,1,0}; +const bool WIZARD_SNMP_PAGES[] = {1,0,0,0,0,1,1,1,1,1,1,1,1,1,0}; +const bool WIZARD_IMPORT_PAGES[] = {1,0,1,0,0,0,0,0,1,0,0,0,0,0,1}; diff --git a/src/libgui/discoverydruid_q.ui b/src/libgui/discoverydruid_q.ui index dcb0ea08c..aee5a86ac 100644 --- a/src/libgui/discoverydruid_q.ui +++ b/src/libgui/discoverydruid_q.ui @@ -9,7 +9,7 @@ 0 0 - 589 + 660 670 @@ -48,7 +48,7 @@ - 2 + 13 @@ -257,7 +257,7 @@ - + 0 @@ -439,7 +439,7 @@ - + 0 @@ -559,7 +559,7 @@ Please enter the domain name below: - + 0 @@ -766,7 +766,7 @@ Please enter the domain name below: - + 0 @@ -992,7 +992,7 @@ Please enter the domain name below: - + 0 @@ -1121,7 +1121,7 @@ Please enter the domain name below: - + 0 @@ -1375,7 +1375,7 @@ Please enter the domain name below: - + 0 @@ -1479,7 +1479,7 @@ Please enter the domain name below: - + 0 @@ -1627,7 +1627,7 @@ Please enter the domain name below: - + 0 @@ -1775,7 +1775,7 @@ Please enter the domain name below: - + 0 @@ -1917,7 +1917,7 @@ Please enter the domain name below: - + 0 @@ -1978,7 +1978,7 @@ Please enter the domain name below: - + 0 @@ -2021,6 +2021,97 @@ Please enter the domain name below: + + + + + + Firewall Builder uses Network Zones to determine network topology. Each firewall interface must have a Network Zone configured. The Network Zone of an interface represents the set of IP networks that would be the source IP address of traffic arriving inbound on an interface. + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + true + + + + + + + If you do not set the Network Zone now you can update the Network Zone configuration after the firewall has been created by double-clicking on the network interface of the firewall object and then selecting the desired object from the Network Zone dropdown list. + + + true + + + + + + + + + + :/Images/network_zone_dialog.png + + + Qt::AlignCenter + + + + + + + + 0 + 150 + + + + QFrame::NoFrame + + + QFrame::Sunken + + + + 0 + + + + + true + + + true + + + + Name + + + + + Label + + + + + Address + + + + + Security Level + + + + + + + + + @@ -2155,7 +2246,9 @@ Please enter the domain name below: typeChangingList libs - + + + addLastFilterButton