* Management.cpp (Management::fromXML): (change in libfwbuilder):
fixed bug #2609796 "internal object Management does not accept
ipv6 address". Class Management should accept ipv6 address. The
problem was that if an interface of the firewall had only ipv6
address and was marked as "management" interface, saving such
configuration to .fwb file created broken data file that could not
be loaded back. The error was:

The program encountered error trying to load data file.
The file has not been loaded. Error:
Exception: Invalid IP address: aaaa:bbbb:cccc::1
XML element : Management

where aaaa:bbbb:cccc: is ipv6 address.
This commit is contained in:
Vadim Kurland
2009-02-17 18:26:01 +00:00
parent 735a8468e7
commit dad78e4890
4 changed files with 22 additions and 35 deletions
+1 -1
View File
@@ -1 +1 @@
#define BUILD_NUM 760
#define BUILD_NUM 761
+18
View File
@@ -1,3 +1,21 @@
2009-02-17 vadim <vadim@vk.crocodile.org>
* Management.cpp (Management::fromXML): (change in libfwbuilder):
fixed bug #2609796 "internal object Management does not accept
ipv6 address". Class Management should accept ipv6 address. The
problem was that if an interface of the firewall had only ipv6
address and was marked as "management" interface, saving such
configuration to .fwb file created broken data file that could not
be loaded back. The error was:
The program encountered error trying to load data file.
The file has not been loaded. Error:
Exception: Invalid IP address: 'aaaa:bbbb:cccc::1'
XML element : Management
where aaaa:bbbb:cccc: is ipv6 address.
2009-02-13 vadim <vadim@vk.crocodile.org>
* PolicyCompiler_ipt.cpp (finalizeChain::processNext): fixed bug
-34
View File
@@ -438,37 +438,3 @@ void instDialog::blockInstallForFirewall(Firewall *fw)
installMapping[fw]->setCheckState(Qt::Unchecked);
}
#if 0
void instDialog::analyseInstallQueue(bool &fPix, bool &fCustInst)
{
if (fwbdebug) qDebug("instDialog::analyseInstallQueue");
Firewall *f;
//FWOptions *fwopt;
Management *mgmt;
PolicyInstallScript *pis;
fPix=false;
fCustInst=true;
t_fwList::iterator i;
for(i=opList.begin(); i!=opList.end(); ++i)
{
f=(*i);
//fwopt=f->getOptionsObject();
mgmt=f->getManagementObject();
pis = mgmt->getPolicyInstallScript();
fPix = fPix || f->getStr("platform")=="pix" || f->getStr("platform")=="fwsm" || f->getStr("platform")=="iosacl";
fCustInst = fCustInst && !( pis->getCommand()=="" );
if (fwbdebug)
{
qDebug(("f:"+f->getName()).c_str());
qDebug(("p:"+f->getStr("platform")).c_str());
qDebug((QString("fPix:")+(fPix?"true":"false")).toAscii().constData());
}
if (fPix && !fCustInst) return;// nothing can change if we continue loop
}
}
#endif
+3
View File
@@ -935,6 +935,9 @@ void instDialog::readInstallerOptionsFromFirewallObject(Firewall *fw)
if (!aaddr.isEmpty()) cnf.maddr = aaddr;
else
{
// Note that Host::getManagementAddress() scans interfaces and
// finds one marked as "management" and takes its address.
// It does not use Management child object.
const InetAddr *mgmt_addr = cnf.fwobj->getManagementAddress();
if (mgmt_addr)
cnf.maddr = mgmt_addr->toString().c_str();