mirror of
https://github.com/fwbuilder/fwbuilder
synced 2026-03-20 02:07:23 +01:00
see #2435 tcp flags parsing
This commit is contained in:
parent
8082f602b3
commit
83fc99f076
@ -206,12 +206,17 @@ void PFImporter::addSrv()
|
||||
if (src_port_group.size() == 0 && dst_port_group.size() == 0)
|
||||
{
|
||||
// protocol has been defined but not ports to match
|
||||
|
||||
ObjectSignature sig(error_tracker);
|
||||
|
||||
if (protocol == "tcp")
|
||||
sig.type_name = TCPService::TYPENAME;
|
||||
else
|
||||
sig.type_name = UDPService::TYPENAME;
|
||||
buildTCPUDPObjectSingature(
|
||||
&sig,
|
||||
"",
|
||||
"",
|
||||
false, // dest.
|
||||
protocol.c_str(),
|
||||
flags_check.c_str(),
|
||||
flags_mask.c_str());
|
||||
|
||||
re->addRef(commitObject(service_maker->createObject(sig)));
|
||||
|
||||
@ -237,8 +242,7 @@ void PFImporter::addSrv()
|
||||
flags_check.c_str(),
|
||||
flags_mask.c_str());
|
||||
|
||||
re->addRef(
|
||||
commitObject(service_maker->createObject(sig)));
|
||||
re->addRef(commitObject(service_maker->createObject(sig)));
|
||||
|
||||
if (ps.port_op == "!=") re->setNeg(true);
|
||||
}
|
||||
@ -261,8 +265,7 @@ void PFImporter::addSrv()
|
||||
flags_check.c_str(),
|
||||
flags_mask.c_str());
|
||||
|
||||
re->addRef(
|
||||
commitObject(service_maker->createObject(sig)));
|
||||
re->addRef(commitObject(service_maker->createObject(sig)));
|
||||
|
||||
if (ps.port_op == "!=") re->setNeg(true);
|
||||
}
|
||||
|
||||
@ -173,12 +173,12 @@ FWObject* ServiceObjectMaker::getTCPService(int srs, int sre,
|
||||
|
||||
nl << QString("tcp %1:%2 / %3:%4").arg(srs).arg(sre).arg(drs).arg(dre);
|
||||
if (established) nl << "est";
|
||||
if (!flags_mask.isEmpty() && !flags_comp.isEmpty())
|
||||
if (!flags_mask.isEmpty() || !flags_comp.isEmpty())
|
||||
{
|
||||
QStringList f;
|
||||
foreach(int x, flags_mask) f << tcp_flag_names[x];
|
||||
f << "/";
|
||||
foreach(int x, flags_comp) f << tcp_flag_names[x];
|
||||
f << "/";
|
||||
foreach(int x, flags_mask) f << tcp_flag_names[x];
|
||||
nl << f.join("");
|
||||
}
|
||||
|
||||
@ -190,7 +190,7 @@ FWObject* ServiceObjectMaker::getTCPService(int srs, int sre,
|
||||
s->setDstRangeEnd(dre);
|
||||
|
||||
|
||||
if (!flags_mask.isEmpty() && !flags_comp.isEmpty())
|
||||
if (!flags_mask.isEmpty() || !flags_comp.isEmpty())
|
||||
{
|
||||
// TCP flags
|
||||
foreach(int x, flags_mask)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user