bugfix 2564,2563

This commit is contained in:
2008-05-31 15:01:04 +00:00
parent 1b125e33d3
commit 0e208db731
3 changed files with 71 additions and 32 deletions
+30 -8
View File
@@ -66,7 +66,7 @@ void NetworkDialog::loadFWObject(FWObject *o)
obj=o; obj=o;
Network *s = dynamic_cast<Network*>(obj); Network *s = dynamic_cast<Network*>(obj);
assert(s!=NULL); assert(s!=NULL);
init=true; init=true;
fillLibraries(m_dialog->libs,obj); fillLibraries(m_dialog->libs,obj);
@@ -124,9 +124,6 @@ void NetworkDialog::validate(bool *res)
0 ); 0 );
} }
try try
{
InetAddr( m_dialog->netmask->text().toLatin1().constData() );
} catch (FWException &ex)
{ {
QString len = m_dialog->netmask->text() ; QString len = m_dialog->netmask->text() ;
bool ok = false ; bool ok = false ;
@@ -134,8 +131,23 @@ void NetworkDialog::validate(bool *res)
if (ok) if (ok)
{ {
if (ilen>0 && ilen < 32) if (ilen>0 && ilen < 32)
{
return ; return ;
}
else
{
*res=false;
QMessageBox::critical(this, "Firewall Builder",
tr("Illegal netmask '%1'").arg( m_dialog->netmask->text() ),
tr("&Continue"), 0, 0,
0 );
}
} }
InetAddr( m_dialog->netmask->text().toLatin1().constData() );
} catch (FWException &ex)
{
*res=false; *res=false;
QMessageBox::critical(this, "Firewall Builder", QMessageBox::critical(this, "Firewall Builder",
tr("Illegal netmask '%1'").arg( m_dialog->netmask->text() ), tr("Illegal netmask '%1'").arg( m_dialog->netmask->text() ),
@@ -158,6 +170,7 @@ void NetworkDialog::applyChanges()
{ {
Network *s = dynamic_cast<Network*>(obj); Network *s = dynamic_cast<Network*>(obj);
assert(s!=NULL); assert(s!=NULL);
s->dump(false,false);
string oldname=obj->getName(); string oldname=obj->getName();
obj->setName( string(m_dialog->obj_name->text().toUtf8().constData()) ); obj->setName( string(m_dialog->obj_name->text().toUtf8().constData()) );
obj->setComment( string(m_dialog->comment->toPlainText().toUtf8().constData()) ); obj->setComment( string(m_dialog->comment->toPlainText().toUtf8().constData()) );
@@ -173,13 +186,22 @@ void NetworkDialog::applyChanges()
try try
{ {
s->setNetmask( QString len = m_dialog->netmask->text() ;
InetAddr(m_dialog->netmask->text().toLatin1().constData()) ); bool ok = false ;
int ilen = len.toInt (&ok);
if (ok)
{
s->setNetmask(InetAddr(ilen));
}
else
{
s->setNetmask(
InetAddr(m_dialog->netmask->text().toLatin1().constData()) );
}
} catch (FWException &ex) } catch (FWException &ex)
{ {
/* exception thrown if user types illegal m_dialog->address or m_dialog->netmask */ /* exception thrown if user types illegal m_dialog->address or m_dialog->netmask */
bool ok = false ; // bool ok = false ;
s->setNetmask(InetAddr(m_dialog->netmask->text().toInt(&ok)));
} }
+20 -12
View File
@@ -606,25 +606,33 @@ void newFirewallDialog::addInterface()
} }
try try
{ {
InetAddr(netm.toLatin1().constData());
}
catch (FWException &ex)
{
bool ok = false ; bool ok = false ;
int ilen = netm.toInt (&ok); int ilen = netm.toInt (&ok);
if (ok&&(ilen>0 && ilen < 32)) if (ok)
{
}
else
{ {
if (ilen>0 && ilen < 32)
{
QMessageBox::warning( QMessageBox::warning(
this,"Firewall Builder", this,"Firewall Builder",
tr("Illegal address '%1/%2'").arg(addr).arg(netm), tr("Illegal address '%1/%2'").arg(addr).arg(netm),
"&Continue", QString::null, QString::null, 0, 1 ); "&Continue", QString::null, QString::null, 0, 1 );
return; return ;
}
} }
else
{
InetAddr(netm.toLatin1().constData());
}
}
catch (FWException &ex)
{
QMessageBox::warning(
this,"Firewall Builder",
tr("Illegal address '%1/%2'").arg(addr).arg(netm),
"&Continue", QString::null, QString::null, 0, 1 );
} }
+21 -12
View File
@@ -513,27 +513,36 @@ void newHostDialog::addInterface()
return; return;
} }
try try
{
InetAddr(netm.toLatin1().constData());
}
catch (FWException &ex)
{ {
bool ok = false ; bool ok = false ;
int ilen = netm.toInt (&ok); int ilen = netm.toInt (&ok);
if (ok&&(ilen>0 && ilen < 32)) if (ok)
{ {
if (ilen>0 && ilen < 32)
} {
else
{
QMessageBox::warning( QMessageBox::warning(
this,"Firewall Builder", this,"Firewall Builder",
tr("Illegal address '%1/%2'").arg(addr).arg(netm), tr("Illegal address '%1/%2'").arg(addr).arg(netm),
"&Continue", QString::null, QString::null, 0, 1 ); "&Continue", QString::null, QString::null, 0, 1 );
return; return ;
}
} }
else
{
InetAddr(netm.toLatin1().constData());
}
} }
catch (FWException &ex)
{
QMessageBox::warning(
this,"Firewall Builder",
tr("Illegal address '%1/%2'").arg(addr).arg(netm),
"&Continue", QString::null, QString::null, 0, 1 );
}
} }
QStringList sl; QStringList sl;