[fwbuilder-commits] [SCM] Firewall Builder GUI and Policy Compilers Open Source Code branch, develo
Brought to you by:
mikehorn
From: <gi...@ir...> - 2011-09-19 22:36:48
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Firewall Builder GUI and Policy Compilers Open Source Code". The branch, development has been updated via eaf71afcfa37407f90a850f15c4b1479f1215cde (commit) from 00f6188390d4b7057b9cc09f234d549ea920901b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit eaf71afcfa37407f90a850f15c4b1479f1215cde Author: Vadim Kurland <va...@sl...> Date: Mon Sep 19 15:57:09 2011 -0700 fixes #2658 "snmp network discovery creates duplicate address and network objects" diff --git a/doc/ChangeLog b/doc/ChangeLog index 688eccb..bbf1f71 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,5 +1,8 @@ 2011-09-19 Vadim Kurland <va...@ne...> + * snmp.cpp (SNMPCrawler::run_impl): fixes #2658 "snmp network + discovery creates duplicate address and network objects" + * ND_ProgressPage.h (class ND_ProgressPage): see #2657 snmp network discovery crashed if option "Confine scan to network" was used. diff --git a/src/libfwbuilder/src/fwbuilder/snmp.cpp b/src/libfwbuilder/src/fwbuilder/snmp.cpp index 01c463a..ef2fa34 100644 --- a/src/libfwbuilder/src/fwbuilder/snmp.cpp +++ b/src/libfwbuilder/src/fwbuilder/snmp.cpp @@ -1316,8 +1316,6 @@ void SNMPCrawler::init(const InetAddr &_seed, queue.clear(); found.clear(); - for (set<InetAddrMask*>::iterator i=networks.begin(); i!=networks.end();++i) - delete *i; networks.clear(); queue[_seed]=""; @@ -1577,7 +1575,8 @@ void SNMPCrawler::run_impl(Logger *logger, // map interfaces with InterfaceData objects. // This object is destroyed when all InterfaceData // objects are destroyed. Create a copy. - networks.insert(new InetAddrMask(*addr, *netm)); + + networks.insert(*net); } } } @@ -1730,8 +1729,7 @@ void SNMPCrawler::run_impl(Logger *logger, *logger << str; networks.insert( - new InetAddrMask(j->getDestination(), - j->getNetmask())); + InetAddrMask(j->getDestination(), j->getNetmask())); nplus++; } @@ -1827,7 +1825,7 @@ void SNMPCrawler::bacresolve_results(Logger *logger, } -set<InetAddrMask*> SNMPCrawler::getNetworks() +set<InetAddrMask> SNMPCrawler::getNetworks() { return networks; } diff --git a/src/libfwbuilder/src/fwbuilder/snmp.h b/src/libfwbuilder/src/fwbuilder/snmp.h index 4f7ca0c..f8cf7ed 100644 --- a/src/libfwbuilder/src/fwbuilder/snmp.h +++ b/src/libfwbuilder/src/fwbuilder/snmp.h @@ -456,7 +456,7 @@ class SNMPCrawler : public BackgroundOp std::map<InetAddr, std::string> queue; std::map<InetAddr, CrawlerFind> found; - std::set<InetAddrMask*> networks; + std::set<InetAddrMask> networks; std::string community; int snmp_retries ; long snmp_timeout ; @@ -510,7 +510,7 @@ class SNMPCrawler : public BackgroundOp const std::vector<InetAddrMask> *include=NULL); std::map<InetAddr, CrawlerFind> getAllIPs(); - std::set<InetAddrMask*> getNetworks(); + std::set<InetAddrMask> getNetworks(); virtual void run_impl(Logger *logger,SyncFlag *stop_program) throw(FWException); diff --git a/src/libgui/snmpNetworkDiscoveryWizard/ND_ProgressPage.cpp b/src/libgui/snmpNetworkDiscoveryWizard/ND_ProgressPage.cpp index 0574f00..681b72a 100644 --- a/src/libgui/snmpNetworkDiscoveryWizard/ND_ProgressPage.cpp +++ b/src/libgui/snmpNetworkDiscoveryWizard/ND_ProgressPage.cpp @@ -255,8 +255,8 @@ void ND_ProgressPage::crawlerFinished() if (crawler==NULL) return; - set<InetAddrMask*>::iterator m; - set<InetAddrMask*> discovered_networks = crawler->getNetworks(); + set<InetAddrMask>::iterator m; + set<InetAddrMask> discovered_networks = crawler->getNetworks(); map<InetAddr, CrawlerFind> discovered_addresses = crawler->getAllIPs(); logLine(tr("Discovered %1 networks").arg(discovered_networks.size())); @@ -264,25 +264,25 @@ void ND_ProgressPage::crawlerFinished() for (m=discovered_networks.begin(); m!=discovered_networks.end(); ++m) { ObjectDescriptor od; - InetAddrMask *net = *m; + InetAddrMask net = *m; - logLine(QString("network %1").arg(net->toString().c_str())); + logLine(QString("network %1").arg(net.toString().c_str())); // if address in *m is ipv6, recreate it as Inet6AddrMask and // use type NetworkIPv6 - if (net->getAddressPtr()->isV6()) + if (net.getAddressPtr()->isV6()) { - Inet6AddrMask in6am(*(net->getAddressPtr()), - *(net->getNetmaskPtr())); + Inet6AddrMask in6am(*(net.getAddressPtr()), + *(net.getNetmaskPtr())); od.sysname = in6am.toString(); // different from ipv6 od.type = NetworkIPv6::TYPENAME; } else { - od.sysname = net->toString(); + od.sysname = net.toString(); od.type = Network::TYPENAME; } - od.addr = *(net->getAddressPtr()); - od.netmask = *(net->getNetmaskPtr()); + od.addr = *(net.getAddressPtr()); + od.netmask = *(net.getNetmaskPtr()); od.isSelected = false; networks->push_back(od); diff --git a/src/libgui/snmpNetworkDiscoveryWizard/SNMPCrawlerThread.cpp b/src/libgui/snmpNetworkDiscoveryWizard/SNMPCrawlerThread.cpp index 1972ecf..ab5d744 100644 --- a/src/libgui/snmpNetworkDiscoveryWizard/SNMPCrawlerThread.cpp +++ b/src/libgui/snmpNetworkDiscoveryWizard/SNMPCrawlerThread.cpp @@ -102,7 +102,7 @@ map<InetAddr, CrawlerFind> SNMPCrawlerThread::getAllIPs() return q->getAllIPs(); } -set<InetAddrMask*> SNMPCrawlerThread::getNetworks() +set<InetAddrMask> SNMPCrawlerThread::getNetworks() { return q->getNetworks(); } diff --git a/src/libgui/snmpNetworkDiscoveryWizard/SNMPCrawlerThread.h b/src/libgui/snmpNetworkDiscoveryWizard/SNMPCrawlerThread.h index 01007e3..4dc9a2e 100644 --- a/src/libgui/snmpNetworkDiscoveryWizard/SNMPCrawlerThread.h +++ b/src/libgui/snmpNetworkDiscoveryWizard/SNMPCrawlerThread.h @@ -72,7 +72,7 @@ public: void stop(); std::map<libfwbuilder::InetAddr, libfwbuilder::CrawlerFind> getAllIPs(); - std::set<libfwbuilder::InetAddrMask*> getNetworks(); + std::set<libfwbuilder::InetAddrMask> getNetworks(); signals: void finished(); diff --git a/src/res/help/en_US/release_notes_5.0.1.html b/src/res/help/en_US/release_notes_5.0.1.html index 6f42e36..2972d5b 100644 --- a/src/res/help/en_US/release_notes_5.0.1.html +++ b/src/res/help/en_US/release_notes_5.0.1.html @@ -142,6 +142,13 @@ </p> </li> + <li> + <p> + fixes #2658 "snmp network discovery creates duplicate address + and network objects" + </p> + </li> + </ul> ----------------------------------------------------------------------- Summary of changes: doc/ChangeLog | 3 +++ src/libfwbuilder/src/fwbuilder/snmp.cpp | 10 ++++------ src/libfwbuilder/src/fwbuilder/snmp.h | 4 ++-- .../snmpNetworkDiscoveryWizard/ND_ProgressPage.cpp | 20 ++++++++++---------- .../SNMPCrawlerThread.cpp | 2 +- .../snmpNetworkDiscoveryWizard/SNMPCrawlerThread.h | 2 +- src/res/help/en_US/release_notes_5.0.1.html | 7 +++++++ 7 files changed, 28 insertions(+), 20 deletions(-) hooks/post-receive -- Firewall Builder GUI and Policy Compilers Open Source Code |