mirror of
https://github.com/fwbuilder/fwbuilder
synced 2026-03-23 11:47:24 +01:00
see #2464 implemented import of "set timeout" commands
This commit is contained in:
parent
d825133481
commit
b86900cc54
@ -146,6 +146,10 @@ void PFImporter::clear()
|
||||
nat_rule_opt_1 = "";
|
||||
nat_rule_opt_2 = "";
|
||||
|
||||
// Do not clear list of timeout name-value pairs since it is filled
|
||||
// when we parse "set timeout" commands and then used in finalize()
|
||||
// timeouts.clear();
|
||||
|
||||
Importer::clear();
|
||||
}
|
||||
|
||||
@ -921,6 +925,8 @@ Firewall* PFImporter::finalize()
|
||||
fw->setStr("host_OS", host_os);
|
||||
Resources::setDefaultTargetOptions(host_os , fw);
|
||||
|
||||
FWOptions* options = fw->getOptionsObject();
|
||||
|
||||
// We may be able to infer at least something about the version
|
||||
// from the pf.conf file in the future.
|
||||
string version = findBestVersionMatch(
|
||||
@ -955,6 +961,79 @@ Firewall* PFImporter::finalize()
|
||||
iface->setDyn(true);
|
||||
}
|
||||
|
||||
// configure timeouts
|
||||
|
||||
// mapping between PF timeout names and our option names
|
||||
map<string, string> timeout_option_names;
|
||||
|
||||
timeout_option_names["tcp.first"] = "pf_tcp_first";
|
||||
timeout_option_names["tcp.opening"] = "pf_tcp_opening";
|
||||
timeout_option_names["tcp.established"] = "pf_tcp_established";
|
||||
timeout_option_names["tcp.closing"] = "pf_tcp_closing";
|
||||
timeout_option_names["tcp.finwait"] = "pf_tcp_finwait";
|
||||
timeout_option_names["tcp.closed"] = "pf_tcp_closed";
|
||||
timeout_option_names["udp.first"] = "pf_udp_first";
|
||||
timeout_option_names["udp.single"] = "pf_udp_single";
|
||||
timeout_option_names["udp.multiple"] = "pf_udp_multiple";
|
||||
timeout_option_names["icmp.first"] = "pf_icmp_first";
|
||||
timeout_option_names["icmp.error"] = "pf_icmp_error";
|
||||
timeout_option_names["other.first"] = "pf_other_first";
|
||||
timeout_option_names["other.single"] = "pf_other_single";
|
||||
timeout_option_names["other.multiple"] = "pf_other_multiple";
|
||||
timeout_option_names["adaptive.start"] = "pf_adaptive_start";
|
||||
timeout_option_names["adaptive.end"] = "pf_adaptive_end";
|
||||
|
||||
timeout_option_names["frag"] = "pf_timeout_frag";
|
||||
timeout_option_names["interval"] = "pf_timeout_interval";
|
||||
|
||||
// looks like we do not support src.track as of 4.3
|
||||
// timeout_option_names["src.track"] = "pf_src_track";
|
||||
|
||||
// mapping between PF timeout names and boolean option names that
|
||||
// activate setting of the corresponding timeout
|
||||
map<string, string> timeout_activation_names;
|
||||
|
||||
timeout_activation_names["tcp.first"] = "pf_set_tcp_first";
|
||||
timeout_activation_names["tcp.opening"] = "pf_set_tcp_opening";
|
||||
timeout_activation_names["tcp.established"] = "pf_set_tcp_established";
|
||||
timeout_activation_names["tcp.closing"] = "pf_set_tcp_closing";
|
||||
timeout_activation_names["tcp.finwait"] = "pf_set_tcp_finwait";
|
||||
timeout_activation_names["tcp.closed"] = "pf_set_tcp_closed";
|
||||
timeout_activation_names["udp.first"] = "pf_set_udp_first";
|
||||
timeout_activation_names["udp.single"] = "pf_set_udp_single";
|
||||
timeout_activation_names["udp.multiple"] = "pf_set_udp_multiple";
|
||||
timeout_activation_names["icmp.first"] = "pf_set_icmp_first";
|
||||
timeout_activation_names["icmp.error"] = "pf_set_icmp_error";
|
||||
timeout_activation_names["other.first"] = "pf_set_other_first";
|
||||
timeout_activation_names["other.single"] = "pf_set_other_single";
|
||||
timeout_activation_names["other.multiple"] = "pf_set_other_multiple";
|
||||
timeout_activation_names["adaptive.start"] = "pf_set_adaptive";
|
||||
timeout_activation_names["adaptive.end"] = "pf_set_adaptive";
|
||||
|
||||
timeout_activation_names["frag"] = "pf_do_timeout_frag";
|
||||
timeout_activation_names["interval"] = "pf_do_timeout_interval";
|
||||
|
||||
|
||||
list<str_tuple>::iterator it;
|
||||
for (it=timeouts.begin(); it!=timeouts.end(); ++it)
|
||||
{
|
||||
string name = it->first;
|
||||
bool ok = false;
|
||||
int value = QString(it->second.c_str()).toInt(&ok);
|
||||
|
||||
qDebug() << "Timeout " << name.c_str() << "=" << value;
|
||||
|
||||
if (timeout_activation_names.count(name) == 0)
|
||||
{
|
||||
error_tracker->registerError(
|
||||
QObject::tr("Unknown timeout name %1").arg(name.c_str()));
|
||||
} else
|
||||
{
|
||||
options->setBool(timeout_activation_names[name], true);
|
||||
options->setInt(timeout_option_names[name], value);
|
||||
}
|
||||
}
|
||||
|
||||
return fw;
|
||||
}
|
||||
else
|
||||
|
||||
@ -117,6 +117,11 @@ public:
|
||||
std::string nat_rule_opt_2;
|
||||
|
||||
libfwbuilder::NATRule::NATRuleTypes rule_type;
|
||||
|
||||
std::list<str_tuple> timeouts;
|
||||
|
||||
|
||||
|
||||
|
||||
PFImporter(libfwbuilder::FWObject *lib,
|
||||
std::istringstream &input,
|
||||
|
||||
@ -44,107 +44,138 @@ PFCfgLexer::PFCfgLexer(const ANTLR_USE_NAMESPACE(antlr)LexerSharedInputState& st
|
||||
|
||||
void PFCfgLexer::initLiterals()
|
||||
{
|
||||
literals["vrrp"] = 84;
|
||||
literals["critical"] = 119;
|
||||
literals["ospf"] = 82;
|
||||
literals["rdp"] = 76;
|
||||
literals["disable"] = 126;
|
||||
literals["return-rst"] = 56;
|
||||
literals["scrub"] = 12;
|
||||
literals["source-hash"] = 46;
|
||||
literals["bitmask"] = 44;
|
||||
literals["ipsec"] = 109;
|
||||
literals["inet"] = 68;
|
||||
literals["pcp"] = 111;
|
||||
literals["emergencies"] = 121;
|
||||
literals["debugging"] = 120;
|
||||
literals["hex-key"] = 47;
|
||||
literals["persist"] = 16;
|
||||
literals["snp"] = 115;
|
||||
literals["timeout"] = 52;
|
||||
literals["to"] = 65;
|
||||
literals["flags"] = 93;
|
||||
literals["isis"] = 86;
|
||||
literals["icmp6-type"] = 96;
|
||||
literals["const"] = 17;
|
||||
literals["return"] = 55;
|
||||
literals["pptp"] = 113;
|
||||
literals["pass"] = 35;
|
||||
literals["no"] = 33;
|
||||
literals["static-port"] = 37;
|
||||
literals["from"] = 87;
|
||||
literals["igrp"] = 108;
|
||||
literals["pim"] = 112;
|
||||
literals["tagged"] = 97;
|
||||
literals["rsvp"] = 77;
|
||||
literals["route-to"] = 91;
|
||||
literals["nos"] = 110;
|
||||
literals["quit"] = 105;
|
||||
literals["peer"] = 28;
|
||||
literals["icmp-type"] = 94;
|
||||
literals["exit"] = 104;
|
||||
literals["modulate"] = 100;
|
||||
literals["nat"] = 34;
|
||||
literals["range"] = 117;
|
||||
literals["urpf-failed"] = 88;
|
||||
literals["out"] = 61;
|
||||
literals["vrrp"] = 115;
|
||||
literals["other.single"] = 37;
|
||||
literals["critical"] = 150;
|
||||
literals["ospf"] = 113;
|
||||
literals["rdp"] = 107;
|
||||
literals["disable"] = 157;
|
||||
literals["return-rst"] = 87;
|
||||
literals["scrub"] = 48;
|
||||
literals["source-hash"] = 78;
|
||||
literals["optimization"] = 14;
|
||||
literals["bitmask"] = 76;
|
||||
literals["ipsec"] = 140;
|
||||
literals["inet"] = 99;
|
||||
literals["pcp"] = 142;
|
||||
literals["emergencies"] = 152;
|
||||
literals["debugging"] = 151;
|
||||
literals["limit"] = 15;
|
||||
literals["hex-key"] = 79;
|
||||
literals["persist"] = 52;
|
||||
literals["snp"] = 146;
|
||||
literals["reassemble"] = 24;
|
||||
literals["block-policy"] = 17;
|
||||
literals["other.first"] = 36;
|
||||
literals["timeout"] = 12;
|
||||
literals["tcp.closed"] = 30;
|
||||
literals["state-policy"] = 18;
|
||||
literals["to"] = 96;
|
||||
literals["flags"] = 124;
|
||||
literals["isis"] = 117;
|
||||
literals["icmp6-type"] = 127;
|
||||
literals["const"] = 53;
|
||||
literals["return"] = 86;
|
||||
literals["pptp"] = 144;
|
||||
literals["interval"] = 40;
|
||||
literals["udp.single"] = 32;
|
||||
literals["pass"] = 67;
|
||||
literals["no"] = 65;
|
||||
literals["static-port"] = 69;
|
||||
literals["igrp"] = 139;
|
||||
literals["from"] = 118;
|
||||
literals["tcp.finwait"] = 29;
|
||||
literals["pim"] = 143;
|
||||
literals["tagged"] = 128;
|
||||
literals["tcp.opening"] = 26;
|
||||
literals["rsvp"] = 108;
|
||||
literals["route-to"] = 122;
|
||||
literals["nos"] = 141;
|
||||
literals["quit"] = 136;
|
||||
literals["peer"] = 61;
|
||||
literals["icmp-type"] = 125;
|
||||
literals["exit"] = 135;
|
||||
literals["icmp.error"] = 35;
|
||||
literals["modulate"] = 131;
|
||||
literals["nat"] = 66;
|
||||
literals["loginterface"] = 16;
|
||||
literals["range"] = 148;
|
||||
literals["urpf-failed"] = 119;
|
||||
literals["out"] = 92;
|
||||
literals["queue"] = 10;
|
||||
literals["gre"] = 78;
|
||||
literals["gre"] = 109;
|
||||
literals["set"] = 11;
|
||||
literals["warnings"] = 125;
|
||||
literals["ah"] = 80;
|
||||
literals["host"] = 116;
|
||||
literals["interface"] = 106;
|
||||
literals["rip"] = 114;
|
||||
literals["icmp6"] = 107;
|
||||
literals["broadcast"] = 27;
|
||||
literals["notifications"] = 124;
|
||||
literals["file"] = 19;
|
||||
literals["network"] = 26;
|
||||
literals["synproxy"] = 101;
|
||||
literals["round-robin"] = 49;
|
||||
literals["require-order"] = 20;
|
||||
literals["tcp.first"] = 25;
|
||||
literals["other.multiple"] = 38;
|
||||
literals["warnings"] = 156;
|
||||
literals["ah"] = 111;
|
||||
literals["host"] = 147;
|
||||
literals["src.track"] = 41;
|
||||
literals["interface"] = 137;
|
||||
literals["rip"] = 145;
|
||||
literals["icmp6"] = 138;
|
||||
literals["broadcast"] = 60;
|
||||
literals["notifications"] = 155;
|
||||
literals["file"] = 55;
|
||||
literals["network"] = 59;
|
||||
literals["synproxy"] = 132;
|
||||
literals["round-robin"] = 81;
|
||||
literals["altq"] = 9;
|
||||
literals["any"] = 89;
|
||||
literals["esp"] = 79;
|
||||
literals["alerts"] = 118;
|
||||
literals["all"] = 63;
|
||||
literals["drop"] = 54;
|
||||
literals["return-icmp"] = 58;
|
||||
literals["inet6"] = 69;
|
||||
literals["inactive"] = 127;
|
||||
literals["label"] = 103;
|
||||
literals["no-route"] = 90;
|
||||
literals["udp"] = 75;
|
||||
literals["reply-to"] = 92;
|
||||
literals["tag"] = 98;
|
||||
literals["port"] = 41;
|
||||
literals["code"] = 95;
|
||||
literals["ip"] = 71;
|
||||
literals["table"] = 13;
|
||||
literals["eigrp"] = 81;
|
||||
literals["errors"] = 122;
|
||||
literals["sticky-address"] = 50;
|
||||
literals["ipip"] = 83;
|
||||
literals["any"] = 120;
|
||||
literals["esp"] = 110;
|
||||
literals["state-defaults"] = 19;
|
||||
literals["alerts"] = 149;
|
||||
literals["all"] = 94;
|
||||
literals["drop"] = 85;
|
||||
literals["return-icmp"] = 89;
|
||||
literals["inet6"] = 100;
|
||||
literals["ruleset-optimization"] = 13;
|
||||
literals["inactive"] = 158;
|
||||
literals["label"] = 134;
|
||||
literals["no-route"] = 121;
|
||||
literals["udp"] = 106;
|
||||
literals["udp.multiple"] = 33;
|
||||
literals["reply-to"] = 123;
|
||||
literals["tcp.established"] = 27;
|
||||
literals["tag"] = 129;
|
||||
literals["port"] = 73;
|
||||
literals["code"] = 126;
|
||||
literals["ip"] = 102;
|
||||
literals["adaptive.start"] = 42;
|
||||
literals["debug"] = 23;
|
||||
literals["table"] = 49;
|
||||
literals["eigrp"] = 112;
|
||||
literals["errors"] = 153;
|
||||
literals["sticky-address"] = 82;
|
||||
literals["ipip"] = 114;
|
||||
literals["antispoof"] = 8;
|
||||
literals["random"] = 45;
|
||||
literals["binat"] = 51;
|
||||
literals["igmp"] = 73;
|
||||
literals["on"] = 67;
|
||||
literals["state"] = 102;
|
||||
literals["string-key"] = 48;
|
||||
literals["log"] = 62;
|
||||
literals["proto"] = 70;
|
||||
literals["rdr"] = 38;
|
||||
literals["informational"] = 123;
|
||||
literals["self"] = 30;
|
||||
literals["in"] = 60;
|
||||
literals["keep"] = 99;
|
||||
literals["block"] = 53;
|
||||
literals["l2tp"] = 85;
|
||||
literals["quick"] = 66;
|
||||
literals["user"] = 64;
|
||||
literals["icmp"] = 72;
|
||||
literals["tcp"] = 74;
|
||||
literals["random"] = 77;
|
||||
literals["binat"] = 83;
|
||||
literals["igmp"] = 104;
|
||||
literals["on"] = 98;
|
||||
literals["fingerprints"] = 21;
|
||||
literals["state"] = 133;
|
||||
literals["string-key"] = 80;
|
||||
literals["udp.first"] = 31;
|
||||
literals["log"] = 93;
|
||||
literals["proto"] = 101;
|
||||
literals["adaptive.end"] = 43;
|
||||
literals["rdr"] = 70;
|
||||
literals["informational"] = 154;
|
||||
literals["self"] = 62;
|
||||
literals["in"] = 91;
|
||||
literals["frag"] = 39;
|
||||
literals["keep"] = 130;
|
||||
literals["block"] = 84;
|
||||
literals["skip"] = 22;
|
||||
literals["tcp.closing"] = 28;
|
||||
literals["l2tp"] = 116;
|
||||
literals["quick"] = 97;
|
||||
literals["user"] = 95;
|
||||
literals["icmp.first"] = 34;
|
||||
literals["icmp"] = 103;
|
||||
literals["tcp"] = 105;
|
||||
}
|
||||
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken PFCfgLexer::nextToken()
|
||||
@ -452,11 +483,11 @@ void PFCfgLexer::mLINE_COMMENT(bool _createToken) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
goto _loop202;
|
||||
goto _loop222;
|
||||
}
|
||||
|
||||
}
|
||||
_loop202:;
|
||||
_loop222:;
|
||||
} // ( ... )*
|
||||
mNEWLINE(false);
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
@ -488,9 +519,9 @@ void PFCfgLexer::mNEWLINE(bool _createToken) {
|
||||
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1403 "pf.g"
|
||||
#line 1612 "pf.g"
|
||||
newline();
|
||||
#line 494 "PFCfgLexer.cpp"
|
||||
#line 525 "PFCfgLexer.cpp"
|
||||
}
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
@ -569,9 +600,9 @@ void PFCfgLexer::mWhitespace(bool _createToken) {
|
||||
}
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1398 "pf.g"
|
||||
#line 1607 "pf.g"
|
||||
_ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP;
|
||||
#line 575 "PFCfgLexer.cpp"
|
||||
#line 606 "PFCfgLexer.cpp"
|
||||
}
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
_token = makeToken(_ttype);
|
||||
@ -796,10 +827,10 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
_ttype = NUMBER_ADDRESS_OR_WORD;
|
||||
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
|
||||
|
||||
bool synPredMatched240 = false;
|
||||
bool synPredMatched260 = false;
|
||||
if (((_tokenSet_2.member(LA(1))) && (_tokenSet_3.member(LA(2))) && (_tokenSet_3.member(LA(3))))) {
|
||||
int _m240 = mark();
|
||||
synPredMatched240 = true;
|
||||
int _m260 = mark();
|
||||
synPredMatched260 = true;
|
||||
inputState->guessing++;
|
||||
try {
|
||||
{
|
||||
@ -808,60 +839,60 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
}
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
|
||||
synPredMatched240 = false;
|
||||
synPredMatched260 = false;
|
||||
}
|
||||
rewind(_m240);
|
||||
rewind(_m260);
|
||||
inputState->guessing--;
|
||||
}
|
||||
if ( synPredMatched240 ) {
|
||||
if ( synPredMatched260 ) {
|
||||
{
|
||||
bool synPredMatched245 = false;
|
||||
bool synPredMatched265 = false;
|
||||
if (((_tokenSet_2.member(LA(1))) && (_tokenSet_3.member(LA(2))) && (_tokenSet_3.member(LA(3))))) {
|
||||
int _m245 = mark();
|
||||
synPredMatched245 = true;
|
||||
int _m265 = mark();
|
||||
synPredMatched265 = true;
|
||||
inputState->guessing++;
|
||||
try {
|
||||
{
|
||||
{ // ( ... )+
|
||||
int _cnt244=0;
|
||||
int _cnt264=0;
|
||||
for (;;) {
|
||||
if ((_tokenSet_2.member(LA(1)))) {
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
}
|
||||
else {
|
||||
if ( _cnt244>=1 ) { goto _loop244; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
if ( _cnt264>=1 ) { goto _loop264; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt244++;
|
||||
_cnt264++;
|
||||
}
|
||||
_loop244:;
|
||||
_loop264:;
|
||||
} // ( ... )+
|
||||
match(':' /* charlit */ );
|
||||
}
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
|
||||
synPredMatched245 = false;
|
||||
synPredMatched265 = false;
|
||||
}
|
||||
rewind(_m245);
|
||||
rewind(_m265);
|
||||
inputState->guessing--;
|
||||
}
|
||||
if ( synPredMatched245 ) {
|
||||
if ( synPredMatched265 ) {
|
||||
{
|
||||
{ // ( ... )+
|
||||
int _cnt248=0;
|
||||
int _cnt268=0;
|
||||
for (;;) {
|
||||
if ((_tokenSet_2.member(LA(1)))) {
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
match(':' /* charlit */ );
|
||||
}
|
||||
else {
|
||||
if ( _cnt248>=1 ) { goto _loop248; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
if ( _cnt268>=1 ) { goto _loop268; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt248++;
|
||||
_cnt268++;
|
||||
}
|
||||
_loop248:;
|
||||
_loop268:;
|
||||
} // ( ... )+
|
||||
match(':' /* charlit */ );
|
||||
{
|
||||
@ -874,11 +905,11 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
}
|
||||
else {
|
||||
goto _loop251;
|
||||
goto _loop271;
|
||||
}
|
||||
|
||||
}
|
||||
_loop251:;
|
||||
_loop271:;
|
||||
} // ( ... )*
|
||||
}
|
||||
else {
|
||||
@ -887,34 +918,34 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
}
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1451 "pf.g"
|
||||
#line 1660 "pf.g"
|
||||
_ttype = IPV6;
|
||||
#line 893 "PFCfgLexer.cpp"
|
||||
#line 924 "PFCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if ((_tokenSet_2.member(LA(1))) && (_tokenSet_3.member(LA(2))) && (_tokenSet_3.member(LA(3)))) {
|
||||
{
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
{ // ( ... )+
|
||||
int _cnt254=0;
|
||||
int _cnt274=0;
|
||||
for (;;) {
|
||||
if ((LA(1) == 0x3a /* ':' */ )) {
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
}
|
||||
else {
|
||||
if ( _cnt254>=1 ) { goto _loop254; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
if ( _cnt274>=1 ) { goto _loop274; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt254++;
|
||||
_cnt274++;
|
||||
}
|
||||
_loop254:;
|
||||
_loop274:;
|
||||
} // ( ... )+
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1453 "pf.g"
|
||||
#line 1662 "pf.g"
|
||||
_ttype = IPV6;
|
||||
#line 918 "PFCfgLexer.cpp"
|
||||
#line 949 "PFCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -924,10 +955,10 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
bool synPredMatched256 = false;
|
||||
bool synPredMatched276 = false;
|
||||
if (((LA(1) == 0x3a /* ':' */ ) && (LA(2) == 0x3a /* ':' */ ) && (_tokenSet_2.member(LA(3))))) {
|
||||
int _m256 = mark();
|
||||
synPredMatched256 = true;
|
||||
int _m276 = mark();
|
||||
synPredMatched276 = true;
|
||||
inputState->guessing++;
|
||||
try {
|
||||
{
|
||||
@ -937,12 +968,12 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
}
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
|
||||
synPredMatched256 = false;
|
||||
synPredMatched276 = false;
|
||||
}
|
||||
rewind(_m256);
|
||||
rewind(_m276);
|
||||
inputState->guessing--;
|
||||
}
|
||||
if ( synPredMatched256 ) {
|
||||
if ( synPredMatched276 ) {
|
||||
match(':' /* charlit */ );
|
||||
match(':' /* charlit */ );
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
@ -953,23 +984,23 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
mNUM_HEX_4DIGIT(false);
|
||||
}
|
||||
else {
|
||||
goto _loop258;
|
||||
goto _loop278;
|
||||
}
|
||||
|
||||
}
|
||||
_loop258:;
|
||||
_loop278:;
|
||||
} // ( ... )*
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1457 "pf.g"
|
||||
#line 1666 "pf.g"
|
||||
_ttype = IPV6;
|
||||
#line 966 "PFCfgLexer.cpp"
|
||||
#line 997 "PFCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
bool synPredMatched260 = false;
|
||||
bool synPredMatched280 = false;
|
||||
if ((((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_4.member(LA(2))) && (_tokenSet_4.member(LA(3))))) {
|
||||
int _m260 = mark();
|
||||
synPredMatched260 = true;
|
||||
int _m280 = mark();
|
||||
synPredMatched280 = true;
|
||||
inputState->guessing++;
|
||||
try {
|
||||
{
|
||||
@ -980,12 +1011,12 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
}
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
|
||||
synPredMatched260 = false;
|
||||
synPredMatched280 = false;
|
||||
}
|
||||
rewind(_m260);
|
||||
rewind(_m280);
|
||||
inputState->guessing--;
|
||||
}
|
||||
if ( synPredMatched260 ) {
|
||||
if ( synPredMatched280 ) {
|
||||
{
|
||||
mNUM_3DIGIT(false);
|
||||
match('.' /* charlit */ );
|
||||
@ -996,144 +1027,144 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
mNUM_3DIGIT(false);
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1475 "pf.g"
|
||||
#line 1684 "pf.g"
|
||||
_ttype = IPV4;
|
||||
#line 1002 "PFCfgLexer.cpp"
|
||||
#line 1033 "PFCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
bool synPredMatched267 = false;
|
||||
bool synPredMatched287 = false;
|
||||
if ((((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_4.member(LA(2))) && (_tokenSet_4.member(LA(3))))) {
|
||||
int _m267 = mark();
|
||||
synPredMatched267 = true;
|
||||
int _m287 = mark();
|
||||
synPredMatched287 = true;
|
||||
inputState->guessing++;
|
||||
try {
|
||||
{
|
||||
{ // ( ... )+
|
||||
int _cnt264=0;
|
||||
int _cnt284=0;
|
||||
for (;;) {
|
||||
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
|
||||
mDIGIT(false);
|
||||
}
|
||||
else {
|
||||
if ( _cnt264>=1 ) { goto _loop264; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
if ( _cnt284>=1 ) { goto _loop284; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt264++;
|
||||
_cnt284++;
|
||||
}
|
||||
_loop264:;
|
||||
_loop284:;
|
||||
} // ( ... )+
|
||||
match('.' /* charlit */ );
|
||||
{ // ( ... )+
|
||||
int _cnt266=0;
|
||||
int _cnt286=0;
|
||||
for (;;) {
|
||||
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
|
||||
mDIGIT(false);
|
||||
}
|
||||
else {
|
||||
if ( _cnt266>=1 ) { goto _loop266; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
if ( _cnt286>=1 ) { goto _loop286; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt266++;
|
||||
_cnt286++;
|
||||
}
|
||||
_loop266:;
|
||||
_loop286:;
|
||||
} // ( ... )+
|
||||
}
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
|
||||
synPredMatched267 = false;
|
||||
synPredMatched287 = false;
|
||||
}
|
||||
rewind(_m267);
|
||||
rewind(_m287);
|
||||
inputState->guessing--;
|
||||
}
|
||||
if ( synPredMatched267 ) {
|
||||
if ( synPredMatched287 ) {
|
||||
{
|
||||
{ // ( ... )+
|
||||
int _cnt270=0;
|
||||
int _cnt290=0;
|
||||
for (;;) {
|
||||
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
|
||||
mDIGIT(false);
|
||||
}
|
||||
else {
|
||||
if ( _cnt270>=1 ) { goto _loop270; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
if ( _cnt290>=1 ) { goto _loop290; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt270++;
|
||||
_cnt290++;
|
||||
}
|
||||
_loop270:;
|
||||
_loop290:;
|
||||
} // ( ... )+
|
||||
match('.' /* charlit */ );
|
||||
{ // ( ... )+
|
||||
int _cnt272=0;
|
||||
int _cnt292=0;
|
||||
for (;;) {
|
||||
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
|
||||
mDIGIT(false);
|
||||
}
|
||||
else {
|
||||
if ( _cnt272>=1 ) { goto _loop272; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
if ( _cnt292>=1 ) { goto _loop292; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt272++;
|
||||
_cnt292++;
|
||||
}
|
||||
_loop272:;
|
||||
_loop292:;
|
||||
} // ( ... )+
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1478 "pf.g"
|
||||
#line 1687 "pf.g"
|
||||
_ttype = NUMBER;
|
||||
#line 1085 "PFCfgLexer.cpp"
|
||||
#line 1116 "PFCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
bool synPredMatched230 = false;
|
||||
bool synPredMatched250 = false;
|
||||
if (((_tokenSet_2.member(LA(1))) && (_tokenSet_3.member(LA(2))) && (true))) {
|
||||
int _m230 = mark();
|
||||
synPredMatched230 = true;
|
||||
int _m250 = mark();
|
||||
synPredMatched250 = true;
|
||||
inputState->guessing++;
|
||||
try {
|
||||
{
|
||||
{ // ( ... )+
|
||||
int _cnt229=0;
|
||||
int _cnt249=0;
|
||||
for (;;) {
|
||||
if ((_tokenSet_2.member(LA(1)))) {
|
||||
mHEX_DIGIT(false);
|
||||
}
|
||||
else {
|
||||
if ( _cnt229>=1 ) { goto _loop229; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
if ( _cnt249>=1 ) { goto _loop249; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt229++;
|
||||
_cnt249++;
|
||||
}
|
||||
_loop229:;
|
||||
_loop249:;
|
||||
} // ( ... )+
|
||||
match(':' /* charlit */ );
|
||||
}
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
|
||||
synPredMatched230 = false;
|
||||
synPredMatched250 = false;
|
||||
}
|
||||
rewind(_m230);
|
||||
rewind(_m250);
|
||||
inputState->guessing--;
|
||||
}
|
||||
if ( synPredMatched230 ) {
|
||||
if ( synPredMatched250 ) {
|
||||
{
|
||||
{
|
||||
{ // ( ... )+
|
||||
int _cnt234=0;
|
||||
int _cnt254=0;
|
||||
for (;;) {
|
||||
if ((_tokenSet_2.member(LA(1)))) {
|
||||
mHEX_DIGIT(false);
|
||||
}
|
||||
else {
|
||||
if ( _cnt234>=1 ) { goto _loop234; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
if ( _cnt254>=1 ) { goto _loop254; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt234++;
|
||||
_cnt254++;
|
||||
}
|
||||
_loop234:;
|
||||
_loop254:;
|
||||
} // ( ... )+
|
||||
{ // ( ... )+
|
||||
int _cnt238=0;
|
||||
int _cnt258=0;
|
||||
for (;;) {
|
||||
if ((LA(1) == 0x3a /* ':' */ )) {
|
||||
match(':' /* charlit */ );
|
||||
@ -1143,26 +1174,26 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
mHEX_DIGIT(false);
|
||||
}
|
||||
else {
|
||||
goto _loop237;
|
||||
goto _loop257;
|
||||
}
|
||||
|
||||
}
|
||||
_loop237:;
|
||||
_loop257:;
|
||||
} // ( ... )*
|
||||
}
|
||||
else {
|
||||
if ( _cnt238>=1 ) { goto _loop238; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
if ( _cnt258>=1 ) { goto _loop258; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt238++;
|
||||
_cnt258++;
|
||||
}
|
||||
_loop238:;
|
||||
_loop258:;
|
||||
} // ( ... )+
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1442 "pf.g"
|
||||
#line 1651 "pf.g"
|
||||
_ttype = IPV6;
|
||||
#line 1166 "PFCfgLexer.cpp"
|
||||
#line 1197 "PFCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1170,38 +1201,38 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
match(':' /* charlit */ );
|
||||
match(':' /* charlit */ );
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1459 "pf.g"
|
||||
#line 1668 "pf.g"
|
||||
_ttype = IPV6;
|
||||
#line 1176 "PFCfgLexer.cpp"
|
||||
#line 1207 "PFCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if ((LA(1) == 0x3a /* ':' */ ) && (true)) {
|
||||
match(':' /* charlit */ );
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1461 "pf.g"
|
||||
#line 1670 "pf.g"
|
||||
_ttype = COLON;
|
||||
#line 1184 "PFCfgLexer.cpp"
|
||||
#line 1215 "PFCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (true) && (true)) {
|
||||
{ // ( ... )+
|
||||
int _cnt274=0;
|
||||
int _cnt294=0;
|
||||
for (;;) {
|
||||
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
|
||||
mDIGIT(false);
|
||||
}
|
||||
else {
|
||||
if ( _cnt274>=1 ) { goto _loop274; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
if ( _cnt294>=1 ) { goto _loop294; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
|
||||
}
|
||||
|
||||
_cnt274++;
|
||||
_cnt294++;
|
||||
}
|
||||
_loop274:;
|
||||
_loop294:;
|
||||
} // ( ... )+
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1480 "pf.g"
|
||||
#line 1689 "pf.g"
|
||||
_ttype = INT_CONST;
|
||||
#line 1205 "PFCfgLexer.cpp"
|
||||
#line 1236 "PFCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else if ((_tokenSet_5.member(LA(1))) && (true) && (true)) {
|
||||
@ -1417,16 +1448,16 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
}
|
||||
default:
|
||||
{
|
||||
goto _loop277;
|
||||
goto _loop297;
|
||||
}
|
||||
}
|
||||
}
|
||||
_loop277:;
|
||||
_loop297:;
|
||||
} // ( ... )*
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1493 "pf.g"
|
||||
#line 1702 "pf.g"
|
||||
_ttype = WORD;
|
||||
#line 1430 "PFCfgLexer.cpp"
|
||||
#line 1461 "PFCfgLexer.cpp"
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -1454,11 +1485,11 @@ void PFCfgLexer::mSTRING(bool _createToken) {
|
||||
matchNot('\"' /* charlit */ );
|
||||
}
|
||||
else {
|
||||
goto _loop280;
|
||||
goto _loop300;
|
||||
}
|
||||
|
||||
}
|
||||
_loop280:;
|
||||
_loop300:;
|
||||
} // ( ... )*
|
||||
match('\"' /* charlit */ );
|
||||
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
|
||||
@ -1866,7 +1897,9 @@ const unsigned long PFCfgLexer::_tokenSet_0_data_[] = { 4294958072UL, 1UL, 0UL,
|
||||
// 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12 0x13 0x14
|
||||
// 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f 0x7f 0x80 0x81
|
||||
// 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8a 0x8b 0x8c 0x8d 0x8e 0x8f
|
||||
// 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98
|
||||
// 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9a 0x9b 0x9c 0x9d
|
||||
// 0x9e 0x9f 0xa0 0xa1 0xa2 0xa3 0xa4 0xa5 0xa6 0xa7 0xa8 0xa9 0xaa 0xab
|
||||
// 0xac 0xad 0xae 0xaf 0xb0 0xb1 0xb2 0xb3 0xb4 0xb5 0xb6 0xb7
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet PFCfgLexer::_tokenSet_0(_tokenSet_0_data_,16);
|
||||
const unsigned long PFCfgLexer::_tokenSet_1_data_[] = { 4294958072UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12 0x13 0x14
|
||||
@ -1875,7 +1908,9 @@ const unsigned long PFCfgLexer::_tokenSet_1_data_[] = { 4294958072UL, 4294967295
|
||||
// H I J K L M N O P Q R S T U V W X Y Z [ 0x5c ] ^ _ ` a b c d e f g h
|
||||
// i j k l m n o p q r s t u v w x y z { | } ~ 0x7f 0x80 0x81 0x82 0x83
|
||||
// 0x84 0x85 0x86 0x87 0x88 0x89 0x8a 0x8b 0x8c 0x8d 0x8e 0x8f 0x90 0x91
|
||||
// 0x92 0x93 0x94 0x95 0x96 0x97 0x98
|
||||
// 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9a 0x9b 0x9c 0x9d 0x9e 0x9f
|
||||
// 0xa0 0xa1 0xa2 0xa3 0xa4 0xa5 0xa6 0xa7 0xa8 0xa9 0xaa 0xab 0xac 0xad
|
||||
// 0xae 0xaf 0xb0 0xb1 0xb2 0xb3 0xb4 0xb5 0xb6 0xb7
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet PFCfgLexer::_tokenSet_1(_tokenSet_1_data_,16);
|
||||
const unsigned long PFCfgLexer::_tokenSet_2_data_[] = { 0UL, 67043328UL, 126UL, 126UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL };
|
||||
// 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
|
||||
@ -1897,6 +1932,8 @@ const unsigned long PFCfgLexer::_tokenSet_6_data_[] = { 4294967288UL, 4294967291
|
||||
// G H I J K L M N O P Q R S T U V W X Y Z [ 0x5c ] ^ _ ` a b c d e f g
|
||||
// h i j k l m n o p q r s t u v w x y z { | } ~ 0x7f 0x80 0x81 0x82 0x83
|
||||
// 0x84 0x85 0x86 0x87 0x88 0x89 0x8a 0x8b 0x8c 0x8d 0x8e 0x8f 0x90 0x91
|
||||
// 0x92 0x93 0x94 0x95 0x96 0x97 0x98
|
||||
// 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9a 0x9b 0x9c 0x9d 0x9e 0x9f
|
||||
// 0xa0 0xa1 0xa2 0xa3 0xa4 0xa5 0xa6 0xa7 0xa8 0xa9 0xaa 0xab 0xac 0xad
|
||||
// 0xae 0xaf 0xb0 0xb1 0xb2 0xb3 0xb4 0xb5 0xb6 0xb7
|
||||
const ANTLR_USE_NAMESPACE(antlr)BitSet PFCfgLexer::_tokenSet_6(_tokenSet_6_data_,16);
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -104,7 +104,21 @@ public:
|
||||
public: void binat_rule();
|
||||
public: void pass_rule();
|
||||
public: void block_rule();
|
||||
public: void timeout_rule();
|
||||
public: void set_timeout();
|
||||
public: void set_ruleset_optimization();
|
||||
public: void set_optimization();
|
||||
public: void set_limit();
|
||||
public: void set_loginterface();
|
||||
public: void set_block_policy();
|
||||
public: void set_state_policy();
|
||||
public: void set_state_defaults();
|
||||
public: void set_require_order();
|
||||
public: void set_fingerprints();
|
||||
public: void set_skip();
|
||||
public: void set_debug();
|
||||
public: void set_reassemble();
|
||||
public: void timeout_def();
|
||||
public: void timeout_def_list();
|
||||
public: void tableaddr_spec();
|
||||
public: void logging();
|
||||
public: void intrface();
|
||||
@ -169,10 +183,10 @@ protected:
|
||||
private:
|
||||
static const char* tokenNames[];
|
||||
#ifndef NO_STATIC_CONSTS
|
||||
static const int NUM_TOKENS = 153;
|
||||
static const int NUM_TOKENS = 184;
|
||||
#else
|
||||
enum {
|
||||
NUM_TOKENS = 153
|
||||
NUM_TOKENS = 184
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -260,6 +274,10 @@ private:
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_40;
|
||||
static const unsigned long _tokenSet_41_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_41;
|
||||
static const unsigned long _tokenSet_42_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_42;
|
||||
static const unsigned long _tokenSet_43_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_43;
|
||||
};
|
||||
|
||||
#endif /*INC_PFCfgParser_hpp_*/
|
||||
|
||||
@ -20,147 +20,178 @@ struct CUSTOM_API PFCfgParserTokenTypes {
|
||||
ALTQ = 9,
|
||||
QUEUE = 10,
|
||||
SET = 11,
|
||||
SCRUB = 12,
|
||||
TABLE = 13,
|
||||
LESS_THAN = 14,
|
||||
GREATER_THAN = 15,
|
||||
PERSIST = 16,
|
||||
CONST = 17,
|
||||
COUNTERS = 18,
|
||||
FILE = 19,
|
||||
STRING = 20,
|
||||
OPENING_BRACE = 21,
|
||||
COMMA = 22,
|
||||
CLOSING_BRACE = 23,
|
||||
EXLAMATION = 24,
|
||||
COLON = 25,
|
||||
NETWORK = 26,
|
||||
BROADCAST = 27,
|
||||
PEER = 28,
|
||||
INT_CONST = 29,
|
||||
SELF = 30,
|
||||
IPV4 = 31,
|
||||
SLASH = 32,
|
||||
NO = 33,
|
||||
NAT = 34,
|
||||
PASS = 35,
|
||||
MINUS = 36,
|
||||
STATIC_PORT = 37,
|
||||
RDR = 38,
|
||||
OPENING_PAREN = 39,
|
||||
CLOSING_PAREN = 40,
|
||||
PORT = 41,
|
||||
IPV6 = 42,
|
||||
STAR = 43,
|
||||
BITMASK = 44,
|
||||
RANDOM = 45,
|
||||
SOURCE_HASH = 46,
|
||||
HEX_KEY = 47,
|
||||
STRING_KEY = 48,
|
||||
ROUND_ROBIN = 49,
|
||||
STICKY_ADDRESS = 50,
|
||||
BINAT = 51,
|
||||
TIMEOUT = 52,
|
||||
BLOCK = 53,
|
||||
DROP = 54,
|
||||
RETURN = 55,
|
||||
RETURN_RST = 56,
|
||||
TTL = 57,
|
||||
RETURN_ICMP = 58,
|
||||
RETURN_ICMP6 = 59,
|
||||
IN = 60,
|
||||
OUT = 61,
|
||||
LOG = 62,
|
||||
ALL = 63,
|
||||
USER = 64,
|
||||
TO = 65,
|
||||
QUICK = 66,
|
||||
ON = 67,
|
||||
INET = 68,
|
||||
INET6 = 69,
|
||||
PROTO = 70,
|
||||
IP = 71,
|
||||
ICMP = 72,
|
||||
IGMP = 73,
|
||||
TCP = 74,
|
||||
UDP = 75,
|
||||
RDP = 76,
|
||||
RSVP = 77,
|
||||
GRE = 78,
|
||||
ESP = 79,
|
||||
AH = 80,
|
||||
EIGRP = 81,
|
||||
OSPF = 82,
|
||||
IPIP = 83,
|
||||
VRRP = 84,
|
||||
L2TP = 85,
|
||||
ISIS = 86,
|
||||
FROM = 87,
|
||||
URPF_FAILED = 88,
|
||||
ANY = 89,
|
||||
NO_ROUTE = 90,
|
||||
ROUTE_TO = 91,
|
||||
REPLY_TO = 92,
|
||||
FLAGS = 93,
|
||||
ICMP_TYPE = 94,
|
||||
ICMP_CODE = 95,
|
||||
ICMP6_TYPE = 96,
|
||||
TAGGED = 97,
|
||||
TAG = 98,
|
||||
KEEP = 99,
|
||||
MODULATE = 100,
|
||||
SYNPROXY = 101,
|
||||
STATE = 102,
|
||||
LABEL = 103,
|
||||
EXIT = 104,
|
||||
QUIT = 105,
|
||||
INTRFACE = 106,
|
||||
ICMP6 = 107,
|
||||
IGRP = 108,
|
||||
IPSEC = 109,
|
||||
NOS = 110,
|
||||
PCP = 111,
|
||||
PIM = 112,
|
||||
PPTP = 113,
|
||||
RIP = 114,
|
||||
SNP = 115,
|
||||
HOST = 116,
|
||||
RANGE = 117,
|
||||
LOG_LEVEL_ALERTS = 118,
|
||||
LOG_LEVEL_CRITICAL = 119,
|
||||
LOG_LEVEL_DEBUGGING = 120,
|
||||
LOG_LEVEL_EMERGENCIES = 121,
|
||||
LOG_LEVEL_ERRORS = 122,
|
||||
LOG_LEVEL_INFORMATIONAL = 123,
|
||||
LOG_LEVEL_NOTIFICATIONS = 124,
|
||||
LOG_LEVEL_WARNINGS = 125,
|
||||
LOG_LEVEL_DISABLE = 126,
|
||||
LOG_LEVEL_INACTIVE = 127,
|
||||
Whitespace = 128,
|
||||
HEX_CONST = 129,
|
||||
NUMBER = 130,
|
||||
NEG_INT_CONST = 131,
|
||||
HEX_DIGIT = 132,
|
||||
DIGIT = 133,
|
||||
NUM_3DIGIT = 134,
|
||||
NUM_HEX_4DIGIT = 135,
|
||||
NUMBER_ADDRESS_OR_WORD = 136,
|
||||
PIPE_CHAR = 137,
|
||||
NUMBER_SIGN = 138,
|
||||
PERCENT = 139,
|
||||
AMPERSAND = 140,
|
||||
APOSTROPHE = 141,
|
||||
PLUS = 142,
|
||||
DOT = 143,
|
||||
SEMICOLON = 144,
|
||||
QUESTION = 145,
|
||||
COMMERCIAL_AT = 146,
|
||||
OPENING_SQUARE = 147,
|
||||
CLOSING_SQUARE = 148,
|
||||
CARET = 149,
|
||||
UNDERLINE = 150,
|
||||
TILDE = 151,
|
||||
DOUBLE_QUOTE = 152,
|
||||
TIMEOUT = 12,
|
||||
// "ruleset-optimization" = 13
|
||||
LITERAL_optimization = 14,
|
||||
LITERAL_limit = 15,
|
||||
LITERAL_loginterface = 16,
|
||||
// "block-policy" = 17
|
||||
// "state-policy" = 18
|
||||
// "state-defaults" = 19
|
||||
// "require-order" = 20
|
||||
LITERAL_fingerprints = 21,
|
||||
LITERAL_skip = 22,
|
||||
LITERAL_debug = 23,
|
||||
LITERAL_reassemble = 24,
|
||||
// "tcp.first" = 25
|
||||
// "tcp.opening" = 26
|
||||
// "tcp.established" = 27
|
||||
// "tcp.closing" = 28
|
||||
// "tcp.finwait" = 29
|
||||
// "tcp.closed" = 30
|
||||
// "udp.first" = 31
|
||||
// "udp.single" = 32
|
||||
// "udp.multiple" = 33
|
||||
// "icmp.first" = 34
|
||||
// "icmp.error" = 35
|
||||
// "other.first" = 36
|
||||
// "other.single" = 37
|
||||
// "other.multiple" = 38
|
||||
LITERAL_frag = 39,
|
||||
LITERAL_interval = 40,
|
||||
// "src.track" = 41
|
||||
// "adaptive.start" = 42
|
||||
// "adaptive.end" = 43
|
||||
INT_CONST = 44,
|
||||
OPENING_BRACE = 45,
|
||||
COMMA = 46,
|
||||
CLOSING_BRACE = 47,
|
||||
SCRUB = 48,
|
||||
TABLE = 49,
|
||||
LESS_THAN = 50,
|
||||
GREATER_THAN = 51,
|
||||
PERSIST = 52,
|
||||
CONST = 53,
|
||||
COUNTERS = 54,
|
||||
FILE = 55,
|
||||
STRING = 56,
|
||||
EXLAMATION = 57,
|
||||
COLON = 58,
|
||||
NETWORK = 59,
|
||||
BROADCAST = 60,
|
||||
PEER = 61,
|
||||
SELF = 62,
|
||||
IPV4 = 63,
|
||||
SLASH = 64,
|
||||
NO = 65,
|
||||
NAT = 66,
|
||||
PASS = 67,
|
||||
MINUS = 68,
|
||||
STATIC_PORT = 69,
|
||||
RDR = 70,
|
||||
OPENING_PAREN = 71,
|
||||
CLOSING_PAREN = 72,
|
||||
PORT = 73,
|
||||
IPV6 = 74,
|
||||
STAR = 75,
|
||||
BITMASK = 76,
|
||||
RANDOM = 77,
|
||||
SOURCE_HASH = 78,
|
||||
HEX_KEY = 79,
|
||||
STRING_KEY = 80,
|
||||
ROUND_ROBIN = 81,
|
||||
STICKY_ADDRESS = 82,
|
||||
BINAT = 83,
|
||||
BLOCK = 84,
|
||||
DROP = 85,
|
||||
RETURN = 86,
|
||||
RETURN_RST = 87,
|
||||
TTL = 88,
|
||||
RETURN_ICMP = 89,
|
||||
RETURN_ICMP6 = 90,
|
||||
IN = 91,
|
||||
OUT = 92,
|
||||
LOG = 93,
|
||||
ALL = 94,
|
||||
USER = 95,
|
||||
TO = 96,
|
||||
QUICK = 97,
|
||||
ON = 98,
|
||||
INET = 99,
|
||||
INET6 = 100,
|
||||
PROTO = 101,
|
||||
IP = 102,
|
||||
ICMP = 103,
|
||||
IGMP = 104,
|
||||
TCP = 105,
|
||||
UDP = 106,
|
||||
RDP = 107,
|
||||
RSVP = 108,
|
||||
GRE = 109,
|
||||
ESP = 110,
|
||||
AH = 111,
|
||||
EIGRP = 112,
|
||||
OSPF = 113,
|
||||
IPIP = 114,
|
||||
VRRP = 115,
|
||||
L2TP = 116,
|
||||
ISIS = 117,
|
||||
FROM = 118,
|
||||
URPF_FAILED = 119,
|
||||
ANY = 120,
|
||||
NO_ROUTE = 121,
|
||||
ROUTE_TO = 122,
|
||||
REPLY_TO = 123,
|
||||
FLAGS = 124,
|
||||
ICMP_TYPE = 125,
|
||||
ICMP_CODE = 126,
|
||||
ICMP6_TYPE = 127,
|
||||
TAGGED = 128,
|
||||
TAG = 129,
|
||||
KEEP = 130,
|
||||
MODULATE = 131,
|
||||
SYNPROXY = 132,
|
||||
STATE = 133,
|
||||
LABEL = 134,
|
||||
EXIT = 135,
|
||||
QUIT = 136,
|
||||
INTRFACE = 137,
|
||||
ICMP6 = 138,
|
||||
IGRP = 139,
|
||||
IPSEC = 140,
|
||||
NOS = 141,
|
||||
PCP = 142,
|
||||
PIM = 143,
|
||||
PPTP = 144,
|
||||
RIP = 145,
|
||||
SNP = 146,
|
||||
HOST = 147,
|
||||
RANGE = 148,
|
||||
LOG_LEVEL_ALERTS = 149,
|
||||
LOG_LEVEL_CRITICAL = 150,
|
||||
LOG_LEVEL_DEBUGGING = 151,
|
||||
LOG_LEVEL_EMERGENCIES = 152,
|
||||
LOG_LEVEL_ERRORS = 153,
|
||||
LOG_LEVEL_INFORMATIONAL = 154,
|
||||
LOG_LEVEL_NOTIFICATIONS = 155,
|
||||
LOG_LEVEL_WARNINGS = 156,
|
||||
LOG_LEVEL_DISABLE = 157,
|
||||
LOG_LEVEL_INACTIVE = 158,
|
||||
Whitespace = 159,
|
||||
HEX_CONST = 160,
|
||||
NUMBER = 161,
|
||||
NEG_INT_CONST = 162,
|
||||
HEX_DIGIT = 163,
|
||||
DIGIT = 164,
|
||||
NUM_3DIGIT = 165,
|
||||
NUM_HEX_4DIGIT = 166,
|
||||
NUMBER_ADDRESS_OR_WORD = 167,
|
||||
PIPE_CHAR = 168,
|
||||
NUMBER_SIGN = 169,
|
||||
PERCENT = 170,
|
||||
AMPERSAND = 171,
|
||||
APOSTROPHE = 172,
|
||||
PLUS = 173,
|
||||
DOT = 174,
|
||||
SEMICOLON = 175,
|
||||
QUESTION = 176,
|
||||
COMMERCIAL_AT = 177,
|
||||
OPENING_SQUARE = 178,
|
||||
CLOSING_SQUARE = 179,
|
||||
CARET = 180,
|
||||
UNDERLINE = 181,
|
||||
TILDE = 182,
|
||||
DOUBLE_QUOTE = 183,
|
||||
NULL_TREE_LOOKAHEAD = 3
|
||||
};
|
||||
#ifdef __cplusplus
|
||||
|
||||
@ -8,144 +8,175 @@ ANTISPOOF="antispoof"=8
|
||||
ALTQ="altq"=9
|
||||
QUEUE="queue"=10
|
||||
SET="set"=11
|
||||
SCRUB="scrub"=12
|
||||
TABLE="table"=13
|
||||
LESS_THAN=14
|
||||
GREATER_THAN=15
|
||||
PERSIST="persist"=16
|
||||
CONST="const"=17
|
||||
COUNTERS=18
|
||||
FILE="file"=19
|
||||
STRING=20
|
||||
OPENING_BRACE=21
|
||||
COMMA=22
|
||||
CLOSING_BRACE=23
|
||||
EXLAMATION=24
|
||||
COLON=25
|
||||
NETWORK="network"=26
|
||||
BROADCAST="broadcast"=27
|
||||
PEER="peer"=28
|
||||
INT_CONST=29
|
||||
SELF="self"=30
|
||||
IPV4=31
|
||||
SLASH=32
|
||||
NO="no"=33
|
||||
NAT="nat"=34
|
||||
PASS="pass"=35
|
||||
MINUS=36
|
||||
STATIC_PORT="static-port"=37
|
||||
RDR="rdr"=38
|
||||
OPENING_PAREN=39
|
||||
CLOSING_PAREN=40
|
||||
PORT="port"=41
|
||||
IPV6=42
|
||||
STAR=43
|
||||
BITMASK="bitmask"=44
|
||||
RANDOM="random"=45
|
||||
SOURCE_HASH="source-hash"=46
|
||||
HEX_KEY="hex-key"=47
|
||||
STRING_KEY="string-key"=48
|
||||
ROUND_ROBIN="round-robin"=49
|
||||
STICKY_ADDRESS="sticky-address"=50
|
||||
BINAT="binat"=51
|
||||
TIMEOUT="timeout"=52
|
||||
BLOCK="block"=53
|
||||
DROP="drop"=54
|
||||
RETURN="return"=55
|
||||
RETURN_RST="return-rst"=56
|
||||
TTL=57
|
||||
RETURN_ICMP="return-icmp"=58
|
||||
RETURN_ICMP6=59
|
||||
IN="in"=60
|
||||
OUT="out"=61
|
||||
LOG="log"=62
|
||||
ALL="all"=63
|
||||
USER="user"=64
|
||||
TO="to"=65
|
||||
QUICK="quick"=66
|
||||
ON="on"=67
|
||||
INET="inet"=68
|
||||
INET6="inet6"=69
|
||||
PROTO="proto"=70
|
||||
IP="ip"=71
|
||||
ICMP="icmp"=72
|
||||
IGMP="igmp"=73
|
||||
TCP="tcp"=74
|
||||
UDP="udp"=75
|
||||
RDP="rdp"=76
|
||||
RSVP="rsvp"=77
|
||||
GRE="gre"=78
|
||||
ESP="esp"=79
|
||||
AH="ah"=80
|
||||
EIGRP="eigrp"=81
|
||||
OSPF="ospf"=82
|
||||
IPIP="ipip"=83
|
||||
VRRP="vrrp"=84
|
||||
L2TP="l2tp"=85
|
||||
ISIS="isis"=86
|
||||
FROM="from"=87
|
||||
URPF_FAILED="urpf-failed"=88
|
||||
ANY="any"=89
|
||||
NO_ROUTE="no-route"=90
|
||||
ROUTE_TO="route-to"=91
|
||||
REPLY_TO="reply-to"=92
|
||||
FLAGS="flags"=93
|
||||
ICMP_TYPE="icmp-type"=94
|
||||
ICMP_CODE="code"=95
|
||||
ICMP6_TYPE="icmp6-type"=96
|
||||
TAGGED="tagged"=97
|
||||
TAG="tag"=98
|
||||
KEEP="keep"=99
|
||||
MODULATE="modulate"=100
|
||||
SYNPROXY="synproxy"=101
|
||||
STATE="state"=102
|
||||
LABEL="label"=103
|
||||
EXIT="exit"=104
|
||||
QUIT="quit"=105
|
||||
INTRFACE="interface"=106
|
||||
ICMP6="icmp6"=107
|
||||
IGRP="igrp"=108
|
||||
IPSEC="ipsec"=109
|
||||
NOS="nos"=110
|
||||
PCP="pcp"=111
|
||||
PIM="pim"=112
|
||||
PPTP="pptp"=113
|
||||
RIP="rip"=114
|
||||
SNP="snp"=115
|
||||
HOST="host"=116
|
||||
RANGE="range"=117
|
||||
LOG_LEVEL_ALERTS="alerts"=118
|
||||
LOG_LEVEL_CRITICAL="critical"=119
|
||||
LOG_LEVEL_DEBUGGING="debugging"=120
|
||||
LOG_LEVEL_EMERGENCIES="emergencies"=121
|
||||
LOG_LEVEL_ERRORS="errors"=122
|
||||
LOG_LEVEL_INFORMATIONAL="informational"=123
|
||||
LOG_LEVEL_NOTIFICATIONS="notifications"=124
|
||||
LOG_LEVEL_WARNINGS="warnings"=125
|
||||
LOG_LEVEL_DISABLE="disable"=126
|
||||
LOG_LEVEL_INACTIVE="inactive"=127
|
||||
Whitespace=128
|
||||
HEX_CONST=129
|
||||
NUMBER=130
|
||||
NEG_INT_CONST=131
|
||||
HEX_DIGIT=132
|
||||
DIGIT=133
|
||||
NUM_3DIGIT=134
|
||||
NUM_HEX_4DIGIT=135
|
||||
NUMBER_ADDRESS_OR_WORD=136
|
||||
PIPE_CHAR=137
|
||||
NUMBER_SIGN=138
|
||||
PERCENT=139
|
||||
AMPERSAND=140
|
||||
APOSTROPHE=141
|
||||
PLUS=142
|
||||
DOT=143
|
||||
SEMICOLON=144
|
||||
QUESTION=145
|
||||
COMMERCIAL_AT=146
|
||||
OPENING_SQUARE=147
|
||||
CLOSING_SQUARE=148
|
||||
CARET=149
|
||||
UNDERLINE=150
|
||||
TILDE=151
|
||||
DOUBLE_QUOTE=152
|
||||
TIMEOUT="timeout"=12
|
||||
"ruleset-optimization"=13
|
||||
LITERAL_optimization="optimization"=14
|
||||
LITERAL_limit="limit"=15
|
||||
LITERAL_loginterface="loginterface"=16
|
||||
"block-policy"=17
|
||||
"state-policy"=18
|
||||
"state-defaults"=19
|
||||
"require-order"=20
|
||||
LITERAL_fingerprints="fingerprints"=21
|
||||
LITERAL_skip="skip"=22
|
||||
LITERAL_debug="debug"=23
|
||||
LITERAL_reassemble="reassemble"=24
|
||||
"tcp.first"=25
|
||||
"tcp.opening"=26
|
||||
"tcp.established"=27
|
||||
"tcp.closing"=28
|
||||
"tcp.finwait"=29
|
||||
"tcp.closed"=30
|
||||
"udp.first"=31
|
||||
"udp.single"=32
|
||||
"udp.multiple"=33
|
||||
"icmp.first"=34
|
||||
"icmp.error"=35
|
||||
"other.first"=36
|
||||
"other.single"=37
|
||||
"other.multiple"=38
|
||||
LITERAL_frag="frag"=39
|
||||
LITERAL_interval="interval"=40
|
||||
"src.track"=41
|
||||
"adaptive.start"=42
|
||||
"adaptive.end"=43
|
||||
INT_CONST=44
|
||||
OPENING_BRACE=45
|
||||
COMMA=46
|
||||
CLOSING_BRACE=47
|
||||
SCRUB="scrub"=48
|
||||
TABLE="table"=49
|
||||
LESS_THAN=50
|
||||
GREATER_THAN=51
|
||||
PERSIST="persist"=52
|
||||
CONST="const"=53
|
||||
COUNTERS=54
|
||||
FILE="file"=55
|
||||
STRING=56
|
||||
EXLAMATION=57
|
||||
COLON=58
|
||||
NETWORK="network"=59
|
||||
BROADCAST="broadcast"=60
|
||||
PEER="peer"=61
|
||||
SELF="self"=62
|
||||
IPV4=63
|
||||
SLASH=64
|
||||
NO="no"=65
|
||||
NAT="nat"=66
|
||||
PASS="pass"=67
|
||||
MINUS=68
|
||||
STATIC_PORT="static-port"=69
|
||||
RDR="rdr"=70
|
||||
OPENING_PAREN=71
|
||||
CLOSING_PAREN=72
|
||||
PORT="port"=73
|
||||
IPV6=74
|
||||
STAR=75
|
||||
BITMASK="bitmask"=76
|
||||
RANDOM="random"=77
|
||||
SOURCE_HASH="source-hash"=78
|
||||
HEX_KEY="hex-key"=79
|
||||
STRING_KEY="string-key"=80
|
||||
ROUND_ROBIN="round-robin"=81
|
||||
STICKY_ADDRESS="sticky-address"=82
|
||||
BINAT="binat"=83
|
||||
BLOCK="block"=84
|
||||
DROP="drop"=85
|
||||
RETURN="return"=86
|
||||
RETURN_RST="return-rst"=87
|
||||
TTL=88
|
||||
RETURN_ICMP="return-icmp"=89
|
||||
RETURN_ICMP6=90
|
||||
IN="in"=91
|
||||
OUT="out"=92
|
||||
LOG="log"=93
|
||||
ALL="all"=94
|
||||
USER="user"=95
|
||||
TO="to"=96
|
||||
QUICK="quick"=97
|
||||
ON="on"=98
|
||||
INET="inet"=99
|
||||
INET6="inet6"=100
|
||||
PROTO="proto"=101
|
||||
IP="ip"=102
|
||||
ICMP="icmp"=103
|
||||
IGMP="igmp"=104
|
||||
TCP="tcp"=105
|
||||
UDP="udp"=106
|
||||
RDP="rdp"=107
|
||||
RSVP="rsvp"=108
|
||||
GRE="gre"=109
|
||||
ESP="esp"=110
|
||||
AH="ah"=111
|
||||
EIGRP="eigrp"=112
|
||||
OSPF="ospf"=113
|
||||
IPIP="ipip"=114
|
||||
VRRP="vrrp"=115
|
||||
L2TP="l2tp"=116
|
||||
ISIS="isis"=117
|
||||
FROM="from"=118
|
||||
URPF_FAILED="urpf-failed"=119
|
||||
ANY="any"=120
|
||||
NO_ROUTE="no-route"=121
|
||||
ROUTE_TO="route-to"=122
|
||||
REPLY_TO="reply-to"=123
|
||||
FLAGS="flags"=124
|
||||
ICMP_TYPE="icmp-type"=125
|
||||
ICMP_CODE="code"=126
|
||||
ICMP6_TYPE="icmp6-type"=127
|
||||
TAGGED="tagged"=128
|
||||
TAG="tag"=129
|
||||
KEEP="keep"=130
|
||||
MODULATE="modulate"=131
|
||||
SYNPROXY="synproxy"=132
|
||||
STATE="state"=133
|
||||
LABEL="label"=134
|
||||
EXIT="exit"=135
|
||||
QUIT="quit"=136
|
||||
INTRFACE="interface"=137
|
||||
ICMP6="icmp6"=138
|
||||
IGRP="igrp"=139
|
||||
IPSEC="ipsec"=140
|
||||
NOS="nos"=141
|
||||
PCP="pcp"=142
|
||||
PIM="pim"=143
|
||||
PPTP="pptp"=144
|
||||
RIP="rip"=145
|
||||
SNP="snp"=146
|
||||
HOST="host"=147
|
||||
RANGE="range"=148
|
||||
LOG_LEVEL_ALERTS="alerts"=149
|
||||
LOG_LEVEL_CRITICAL="critical"=150
|
||||
LOG_LEVEL_DEBUGGING="debugging"=151
|
||||
LOG_LEVEL_EMERGENCIES="emergencies"=152
|
||||
LOG_LEVEL_ERRORS="errors"=153
|
||||
LOG_LEVEL_INFORMATIONAL="informational"=154
|
||||
LOG_LEVEL_NOTIFICATIONS="notifications"=155
|
||||
LOG_LEVEL_WARNINGS="warnings"=156
|
||||
LOG_LEVEL_DISABLE="disable"=157
|
||||
LOG_LEVEL_INACTIVE="inactive"=158
|
||||
Whitespace=159
|
||||
HEX_CONST=160
|
||||
NUMBER=161
|
||||
NEG_INT_CONST=162
|
||||
HEX_DIGIT=163
|
||||
DIGIT=164
|
||||
NUM_3DIGIT=165
|
||||
NUM_HEX_4DIGIT=166
|
||||
NUMBER_ADDRESS_OR_WORD=167
|
||||
PIPE_CHAR=168
|
||||
NUMBER_SIGN=169
|
||||
PERCENT=170
|
||||
AMPERSAND=171
|
||||
APOSTROPHE=172
|
||||
PLUS=173
|
||||
DOT=174
|
||||
SEMICOLON=175
|
||||
QUESTION=176
|
||||
COMMERCIAL_AT=177
|
||||
OPENING_SQUARE=178
|
||||
CLOSING_SQUARE=179
|
||||
CARET=180
|
||||
UNDERLINE=181
|
||||
TILDE=182
|
||||
DOUBLE_QUOTE=183
|
||||
|
||||
235
src/parsers/pf.g
235
src/parsers/pf.g
@ -140,8 +140,6 @@ cfgfile :
|
||||
|
|
||||
block_rule
|
||||
|
|
||||
timeout_rule
|
||||
|
|
||||
// unknown_rule
|
||||
// |
|
||||
NEWLINE
|
||||
@ -198,12 +196,230 @@ set_rule : SET
|
||||
{
|
||||
importer->clear();
|
||||
importer->setCurrentLineNumber(LT(0)->getLine());
|
||||
importer->addMessageToLog(
|
||||
QString("Warning: import of 'set' commands has not been implemented yet."));
|
||||
}
|
||||
(
|
||||
set_timeout
|
||||
|
|
||||
set_ruleset_optimization
|
||||
|
|
||||
set_optimization
|
||||
|
|
||||
set_limit
|
||||
|
|
||||
set_loginterface
|
||||
|
|
||||
set_block_policy
|
||||
|
|
||||
set_state_policy
|
||||
|
|
||||
set_state_defaults
|
||||
|
|
||||
set_require_order
|
||||
|
|
||||
set_fingerprints
|
||||
|
|
||||
set_skip
|
||||
|
|
||||
set_debug
|
||||
|
|
||||
set_reassemble
|
||||
)
|
||||
;
|
||||
|
||||
set_timeout
|
||||
:
|
||||
TIMEOUT ( timeout_def | timeout_def_list )
|
||||
;
|
||||
|
||||
set_ruleset_optimization
|
||||
:
|
||||
"ruleset-optimization"
|
||||
{
|
||||
importer->clear();
|
||||
importer->setCurrentLineNumber(LT(0)->getLine());
|
||||
importer->error_tracker->registerError(
|
||||
QString("import of 'set ruleset-optimization' commands is not supported."));
|
||||
consumeUntil(NEWLINE);
|
||||
}
|
||||
;
|
||||
|
||||
set_optimization
|
||||
:
|
||||
"optimization"
|
||||
;
|
||||
|
||||
set_limit
|
||||
:
|
||||
"limit"
|
||||
;
|
||||
|
||||
set_loginterface
|
||||
:
|
||||
"loginterface"
|
||||
{
|
||||
importer->clear();
|
||||
importer->setCurrentLineNumber(LT(0)->getLine());
|
||||
importer->error_tracker->registerError(
|
||||
QString("import of 'set loginterface' commands is not supported."));
|
||||
consumeUntil(NEWLINE);
|
||||
}
|
||||
;
|
||||
|
||||
set_block_policy
|
||||
:
|
||||
"block-policy"
|
||||
{
|
||||
importer->clear();
|
||||
importer->setCurrentLineNumber(LT(0)->getLine());
|
||||
importer->error_tracker->registerError(
|
||||
QString("import of 'set block-policy' commands is not supported."));
|
||||
consumeUntil(NEWLINE);
|
||||
}
|
||||
;
|
||||
|
||||
set_state_policy
|
||||
:
|
||||
"state-policy"
|
||||
;
|
||||
|
||||
set_state_defaults
|
||||
:
|
||||
"state-defaults"
|
||||
{
|
||||
importer->clear();
|
||||
importer->setCurrentLineNumber(LT(0)->getLine());
|
||||
importer->error_tracker->registerError(
|
||||
QString("import of 'set state-defaults' commands is not supported."));
|
||||
consumeUntil(NEWLINE);
|
||||
}
|
||||
;
|
||||
|
||||
set_require_order
|
||||
:
|
||||
"require-order"
|
||||
{
|
||||
importer->clear();
|
||||
importer->setCurrentLineNumber(LT(0)->getLine());
|
||||
importer->error_tracker->registerError(
|
||||
QString("import of 'set require-order' commands is not supported."));
|
||||
consumeUntil(NEWLINE);
|
||||
}
|
||||
;
|
||||
|
||||
set_fingerprints
|
||||
:
|
||||
"fingerprints"
|
||||
{
|
||||
importer->clear();
|
||||
importer->setCurrentLineNumber(LT(0)->getLine());
|
||||
importer->error_tracker->registerError(
|
||||
QString("import of 'set fingerprints' commands is not supported."));
|
||||
consumeUntil(NEWLINE);
|
||||
}
|
||||
;
|
||||
|
||||
set_skip
|
||||
:
|
||||
"skip"
|
||||
;
|
||||
|
||||
set_debug
|
||||
:
|
||||
"debug"
|
||||
{
|
||||
importer->clear();
|
||||
importer->setCurrentLineNumber(LT(0)->getLine());
|
||||
importer->error_tracker->registerError(
|
||||
QString("import of 'set debug' commands is not supported."));
|
||||
consumeUntil(NEWLINE);
|
||||
}
|
||||
;
|
||||
|
||||
set_reassemble
|
||||
:
|
||||
"reassemble"
|
||||
{
|
||||
importer->clear();
|
||||
importer->setCurrentLineNumber(LT(0)->getLine());
|
||||
importer->error_tracker->registerError(
|
||||
QString("import of 'set reassemble' commands is not supported."));
|
||||
consumeUntil(NEWLINE);
|
||||
}
|
||||
;
|
||||
|
||||
/*
|
||||
timeout = ( "tcp.first" | "tcp.opening" | "tcp.established" |
|
||||
"tcp.closing" | "tcp.finwait" | "tcp.closed" |
|
||||
"udp.first" | "udp.single" | "udp.multiple" |
|
||||
"icmp.first" | "icmp.error" |
|
||||
"other.first" | "other.single" | "other.multiple" |
|
||||
"frag" | "interval" | "src.track" |
|
||||
"adaptive.start" | "adaptive.end" ) number
|
||||
*/
|
||||
timeout_def { std::string timeout_name, timeout_value; }
|
||||
:
|
||||
(
|
||||
"tcp.first"
|
||||
|
|
||||
"tcp.opening"
|
||||
|
|
||||
"tcp.established"
|
||||
|
|
||||
"tcp.closing"
|
||||
|
|
||||
"tcp.finwait"
|
||||
|
|
||||
"tcp.closed"
|
||||
|
|
||||
"udp.first"
|
||||
|
|
||||
"udp.single"
|
||||
|
|
||||
"udp.multiple"
|
||||
|
|
||||
"icmp.first"
|
||||
|
|
||||
"icmp.error"
|
||||
|
|
||||
"other.first"
|
||||
|
|
||||
"other.single"
|
||||
|
|
||||
"other.multiple"
|
||||
|
|
||||
"frag"
|
||||
|
|
||||
"interval"
|
||||
|
|
||||
"src.track"
|
||||
|
|
||||
"adaptive.start"
|
||||
|
|
||||
"adaptive.end"
|
||||
)
|
||||
{
|
||||
timeout_name = LT(0)->getText();
|
||||
}
|
||||
INT_CONST
|
||||
{
|
||||
timeout_value = LT(0)->getText();
|
||||
importer->timeouts.push_back(
|
||||
std::pair<std::string, std::string>(timeout_name, timeout_value));
|
||||
}
|
||||
;
|
||||
|
||||
timeout_def_list
|
||||
:
|
||||
OPENING_BRACE
|
||||
timeout_def
|
||||
(
|
||||
( COMMA )?
|
||||
timeout_def
|
||||
)*
|
||||
CLOSING_BRACE
|
||||
;
|
||||
|
||||
|
||||
//****************************************************************
|
||||
scrub_rule : SCRUB
|
||||
{
|
||||
@ -573,17 +789,6 @@ binat_rule : BINAT
|
||||
}
|
||||
;
|
||||
|
||||
//****************************************************************
|
||||
timeout_rule : TIMEOUT
|
||||
{
|
||||
importer->clear();
|
||||
importer->setCurrentLineNumber(LT(0)->getLine());
|
||||
importer->addMessageToLog(
|
||||
QString("Warning: import of 'timeout' commands has not been implemented yet."));
|
||||
consumeUntil(NEWLINE);
|
||||
}
|
||||
;
|
||||
|
||||
|
||||
//****************************************************************
|
||||
//unknown_rule : WORD
|
||||
|
||||
10
src/unit_tests/PFImporterTest/test_data/pf-timeouts.conf
Normal file
10
src/unit_tests/PFImporterTest/test_data/pf-timeouts.conf
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
# these should be all timeouts we support in 4.3
|
||||
set timeout { interval 10, frag 30 }
|
||||
set timeout { tcp.first 60, tcp.opening 30, tcp.established 3600, tcp.closing 30, tcp.finwait 2, tcp.closed 10 }
|
||||
set timeout { udp.first 20, udp.single 10, udp.multiple 15 }
|
||||
set timeout { icmp.first 11, icmp.error 6 }
|
||||
set timeout { other.first 40, other.single 20, other.multiple 30 }
|
||||
set timeout { adaptive.start 10, adaptive.end 5 }
|
||||
|
||||
block log all
|
||||
Loading…
x
Reference in New Issue
Block a user