see #2497 added an error on import of "include" word in pf.conf files

This commit is contained in:
Vadim Kurland
2011-06-09 16:15:36 -07:00
parent 677173e030
commit c77796ebd0
7 changed files with 1652 additions and 1510 deletions
+1
View File
@@ -81,6 +81,7 @@
- Import of IPv6 addresses and ICMPv6 matches in pf.conf is not - Import of IPv6 addresses and ICMPv6 matches in pf.conf is not
supported at this time. supported at this time.
- Import of TCP flag matches for flags 'E' and 'W' is not supported. - Import of TCP flag matches for flags 'E' and 'W' is not supported.
- Import of "include" clause is not supported
2011-05-26 Vadim Kurland <vadim@netcitadel.com> 2011-05-26 Vadim Kurland <vadim@netcitadel.com>
+313 -312
View File
@@ -44,214 +44,215 @@ PFCfgLexer::PFCfgLexer(const ANTLR_USE_NAMESPACE(antlr)LexerSharedInputState& st
void PFCfgLexer::initLiterals() void PFCfgLexer::initLiterals()
{ {
literals["badhead"] = 197; literals["badhead"] = 198;
literals["notifications"] = 231; literals["notifications"] = 232;
literals["state-policy"] = 25; literals["state-policy"] = 26;
literals["floating"] = 27; literals["floating"] = 28;
literals["no"] = 83; literals["no"] = 84;
literals["counters"] = 71; literals["counters"] = 72;
literals["esp"] = 125; literals["esp"] = 126;
literals["routersol"] = 156; literals["routersol"] = 157;
literals["frags"] = 59; literals["frags"] = 60;
literals["reply-to"] = 138; literals["reply-to"] = 139;
literals["icmp.first"] = 48; literals["icmp.first"] = 49;
literals["string-key"] = 98; literals["string-key"] = 99;
literals["gre"] = 124; literals["gre"] = 125;
literals["pass"] = 85; literals["pass"] = 86;
literals["scrub"] = 64; literals["scrub"] = 65;
literals["warnings"] = 232; literals["warnings"] = 233;
literals["skip"] = 31; literals["include"] = 6;
literals["timeout"] = 12; literals["skip"] = 32;
literals["eigrp"] = 127; literals["timeout"] = 13;
literals["icmp-type"] = 147; literals["eigrp"] = 128;
literals["transit"] = 195; literals["icmp-type"] = 148;
literals["inet"] = 114; literals["transit"] = 196;
literals["no-df"] = 142; literals["inet"] = 115;
literals["network"] = 76; literals["no-df"] = 143;
literals["photuris"] = 172; literals["network"] = 77;
literals["igmp"] = 119; literals["photuris"] = 173;
literals["unreach"] = 150; literals["igmp"] = 120;
literals["range"] = 224; literals["unreach"] = 151;
literals["rsvp"] = 123; literals["range"] = 225;
literals["debugging"] = 227; literals["rsvp"] = 124;
literals["host-tos"] = 185; literals["debugging"] = 228;
literals["paramprob"] = 158; literals["host-tos"] = 186;
literals["user"] = 111; literals["paramprob"] = 159;
literals["interface"] = 213; literals["user"] = 112;
literals["adaptive.end"] = 57; literals["interface"] = 214;
literals["limit"] = 20; literals["adaptive.end"] = 58;
literals["state-defaults"] = 28; literals["limit"] = 21;
literals["hex-key"] = 97; literals["state-defaults"] = 29;
literals["net-unk"] = 179; literals["hex-key"] = 98;
literals["antispoof"] = 8; literals["net-unk"] = 180;
literals["udp.single"] = 46; literals["antispoof"] = 9;
literals["inforeq"] = 161; literals["udp.single"] = 47;
literals["ipv6-here"] = 169; literals["inforeq"] = 162;
literals["redir"] = 152; literals["ipv6-here"] = 170;
literals["static-port"] = 87; literals["redir"] = 153;
literals["common-adv"] = 194; literals["static-port"] = 88;
literals["loginterface"] = 21; literals["common-adv"] = 195;
literals["ip"] = 117; literals["loginterface"] = 22;
literals["mobregreq"] = 170; literals["ip"] = 118;
literals["conservative"] = 16; literals["mobregreq"] = 171;
literals["ospf"] = 128; literals["conservative"] = 17;
literals["proto-unr"] = 175; literals["ospf"] = 129;
literals["peer"] = 78; literals["proto-unr"] = 176;
literals["inforep"] = 162; literals["peer"] = 79;
literals["errors"] = 229; literals["inforep"] = 163;
literals["tables-entries"] = 63; literals["errors"] = 230;
literals["any"] = 135; literals["tables-entries"] = 64;
literals["mobregrep"] = 171; literals["any"] = 136;
literals["label"] = 210; literals["mobregrep"] = 172;
literals["pptp"] = 220; literals["label"] = 211;
literals["synproxy"] = 208; literals["pptp"] = 221;
literals["debug"] = 36; literals["synproxy"] = 209;
literals["alerts"] = 225; literals["debug"] = 37;
literals["all"] = 110; literals["alerts"] = 226;
literals["state"] = 209; literals["all"] = 111;
literals["tag"] = 205; literals["state"] = 210;
literals["in"] = 107; literals["tag"] = 206;
literals["tables"] = 62; literals["in"] = 108;
literals["file"] = 72; literals["tables"] = 63;
literals["nos"] = 217; literals["file"] = 73;
literals["src-nodes"] = 61; literals["nos"] = 218;
literals["ipv6-where"] = 168; literals["src-nodes"] = 62;
literals["require-order"] = 29; literals["ipv6-where"] = 169;
literals["udp"] = 121; literals["require-order"] = 30;
literals["states"] = 60; literals["udp"] = 122;
literals["sticky-address"] = 100; literals["states"] = 61;
literals["return-icmp"] = 105; literals["sticky-address"] = 101;
literals["redir-tos-net"] = 191; literals["return-icmp"] = 106;
literals["pim"] = 219; literals["redir-tos-net"] = 192;
literals["emergencies"] = 228; literals["pim"] = 220;
literals["squench"] = 151; literals["emergencies"] = 229;
literals["disable"] = 233; literals["squench"] = 152;
literals["flags"] = 146; literals["disable"] = 234;
literals["tcp"] = 120; literals["flags"] = 147;
literals["net-tos"] = 184; literals["tcp"] = 121;
literals["reassemble"] = 37; literals["net-tos"] = 185;
literals["adaptive.start"] = 56; literals["reassemble"] = 38;
literals["frag"] = 53; literals["adaptive.start"] = 57;
literals["port"] = 91; literals["frag"] = 54;
literals["icmp"] = 118; literals["port"] = 92;
literals["to"] = 112; literals["icmp"] = 119;
literals["return-rst"] = 103; literals["to"] = 113;
literals["normal-adv"] = 193; literals["return-rst"] = 104;
literals["optimization"] = 14; literals["normal-adv"] = 194;
literals["log"] = 109; literals["optimization"] = 15;
literals["fragment"] = 139; literals["log"] = 110;
literals["snp"] = 222; literals["fragment"] = 140;
literals["broadcast"] = 77; literals["snp"] = 223;
literals["icmp6-type"] = 203; literals["broadcast"] = 78;
literals["normal"] = 18; literals["icmp6-type"] = 204;
literals["code"] = 148; literals["normal"] = 19;
literals["if-bound"] = 26; literals["code"] = 149;
literals["src.track"] = 55; literals["if-bound"] = 27;
literals["drop-ovl"] = 141; literals["src.track"] = 56;
literals["routeradv"] = 155; literals["drop-ovl"] = 142;
literals["other.single"] = 51; literals["routeradv"] = 156;
literals["bitmask"] = 94; literals["other.single"] = 52;
literals["maskreq"] = 163; literals["bitmask"] = 95;
literals["ipip"] = 129; literals["maskreq"] = 164;
literals["tcp.closed"] = 44; literals["ipip"] = 130;
literals["block"] = 102; literals["tcp.closed"] = 45;
literals["high-latency"] = 17; literals["block"] = 103;
literals["udp.first"] = 45; literals["high-latency"] = 18;
literals["badlen"] = 199; literals["udp.first"] = 46;
literals["tcp.first"] = 39; literals["badlen"] = 200;
literals["host-unr"] = 174; literals["tcp.first"] = 40;
literals["ah"] = 126; literals["host-unr"] = 175;
literals["random-id"] = 145; literals["ah"] = 127;
literals["modulate"] = 207; literals["random-id"] = 146;
literals["interval"] = 54; literals["modulate"] = 208;
literals["maskrep"] = 164; literals["interval"] = 55;
literals["ruleset-optimization"] = 13; literals["maskrep"] = 165;
literals["trace"] = 165; literals["ruleset-optimization"] = 14;
literals["rip"] = 221; literals["trace"] = 166;
literals["urpf-failed"] = 134; literals["rip"] = 222;
literals["set"] = 11; literals["urpf-failed"] = 135;
literals["source-hash"] = 96; literals["set"] = 12;
literals["critical"] = 226; literals["source-hash"] = 97;
literals["quit"] = 212; literals["critical"] = 227;
literals["icmp.error"] = 49; literals["quit"] = 213;
literals["const"] = 70; literals["icmp.error"] = 50;
literals["altq"] = 9; literals["const"] = 71;
literals["tcp.closing"] = 42; literals["altq"] = 10;
literals["port-unr"] = 176; literals["tcp.closing"] = 43;
literals["table"] = 66; literals["port-unr"] = 177;
literals["redir-tos-host"] = 192; literals["table"] = 67;
literals["fingerprints"] = 30; literals["redir-tos-host"] = 193;
literals["return"] = 24; literals["fingerprints"] = 31;
literals["optmiss"] = 198; literals["return"] = 25;
literals["match"] = 65; literals["optmiss"] = 199;
literals["keep"] = 206; literals["match"] = 66;
literals["net-prohib"] = 182; literals["keep"] = 207;
literals["inet6"] = 115; literals["net-prohib"] = 183;
literals["from"] = 133; literals["inet6"] = 116;
literals["tcp.finwait"] = 43; literals["from"] = 134;
literals["hostid"] = 38; literals["tcp.finwait"] = 44;
literals["proto"] = 116; literals["hostid"] = 39;
literals["vrrp"] = 130; literals["proto"] = 117;
literals["drop"] = 23; literals["vrrp"] = 131;
literals["l2tp"] = 131; literals["drop"] = 24;
literals["max-mss"] = 144; literals["l2tp"] = 132;
literals["isolate"] = 181; literals["max-mss"] = 145;
literals["timereq"] = 159; literals["isolate"] = 182;
literals["aggressive"] = 15; literals["timereq"] = 160;
literals["icmp6"] = 214; literals["aggressive"] = 16;
literals["echoreq"] = 154; literals["icmp6"] = 215;
literals["tcp.established"] = 41; literals["echoreq"] = 155;
literals["decrypt-fail"] = 202; literals["tcp.established"] = 42;
literals["mobredir"] = 167; literals["decrypt-fail"] = 203;
literals["other.first"] = 50; literals["mobredir"] = 168;
literals["ipsec"] = 216; literals["other.first"] = 51;
literals["no-route"] = 136; literals["ipsec"] = 217;
literals["random"] = 95; literals["no-route"] = 137;
literals["binat"] = 101; literals["random"] = 96;
literals["srcfail"] = 178; literals["binat"] = 102;
literals["self"] = 79; literals["srcfail"] = 179;
literals["timerep"] = 160; literals["self"] = 80;
literals["crop"] = 140; literals["timerep"] = 161;
literals["host-preced"] = 187; literals["crop"] = 141;
literals["host"] = 223; literals["host-preced"] = 188;
literals["echorep"] = 149; literals["host"] = 224;
literals["other.multiple"] = 52; literals["echorep"] = 150;
literals["althost"] = 153; literals["other.multiple"] = 53;
literals["udp.multiple"] = 47; literals["althost"] = 154;
literals["cutoff-preced"] = 188; literals["udp.multiple"] = 48;
literals["redir-host"] = 190; literals["cutoff-preced"] = 189;
literals["rdr"] = 88; literals["redir-host"] = 191;
literals["tagged"] = 204; literals["rdr"] = 89;
literals["on"] = 32; literals["tagged"] = 205;
literals["round-robin"] = 99; literals["on"] = 33;
literals["pcp"] = 218; literals["round-robin"] = 100;
literals["block-policy"] = 22; literals["pcp"] = 219;
literals["persist"] = 69; literals["block-policy"] = 23;
literals["unknown-ind"] = 200; literals["persist"] = 70;
literals["redir-net"] = 189; literals["unknown-ind"] = 201;
literals["filter-prohib"] = 186; literals["redir-net"] = 190;
literals["nat"] = 84; literals["filter-prohib"] = 187;
literals["satellite"] = 19; literals["nat"] = 85;
literals["informational"] = 230; literals["satellite"] = 20;
literals["needfrag"] = 177; literals["informational"] = 231;
literals["tcp.opening"] = 40; literals["needfrag"] = 178;
literals["igrp"] = 215; literals["tcp.opening"] = 41;
literals["quick"] = 113; literals["igrp"] = 216;
literals["timex"] = 157; literals["quick"] = 114;
literals["host-unk"] = 180; literals["timex"] = 158;
literals["route-to"] = 137; literals["host-unk"] = 181;
literals["dataconv"] = 166; literals["route-to"] = 138;
literals["rdp"] = 122; literals["dataconv"] = 167;
literals["net-unr"] = 173; literals["rdp"] = 123;
literals["queue"] = 10; literals["net-unr"] = 174;
literals["isis"] = 132; literals["queue"] = 11;
literals["reassemb"] = 196; literals["isis"] = 133;
literals["inactive"] = 234; literals["reassemb"] = 197;
literals["out"] = 108; literals["inactive"] = 235;
literals["min-ttl"] = 143; literals["out"] = 109;
literals["auth-fail"] = 201; literals["min-ttl"] = 144;
literals["exit"] = 211; literals["auth-fail"] = 202;
literals["host-prohib"] = 183; literals["exit"] = 212;
literals["host-prohib"] = 184;
} }
ANTLR_USE_NAMESPACE(antlr)RefToken PFCfgLexer::nextToken() ANTLR_USE_NAMESPACE(antlr)RefToken PFCfgLexer::nextToken()
@@ -559,11 +560,11 @@ void PFCfgLexer::mLINE_COMMENT(bool _createToken) {
} }
} }
else { else {
goto _loop255; goto _loop256;
} }
} }
_loop255:; _loop256:;
} // ( ... )* } // ( ... )*
mNEWLINE(false); mNEWLINE(false);
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
@@ -595,9 +596,9 @@ void PFCfgLexer::mNEWLINE(bool _createToken) {
} }
if ( inputState->guessing==0 ) { if ( inputState->guessing==0 ) {
#line 1918 "pf.g" #line 1933 "pf.g"
newline(); newline();
#line 601 "PFCfgLexer.cpp" #line 602 "PFCfgLexer.cpp"
} }
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
_token = makeToken(_ttype); _token = makeToken(_ttype);
@@ -676,9 +677,9 @@ void PFCfgLexer::mWhitespace(bool _createToken) {
} }
} }
if ( inputState->guessing==0 ) { if ( inputState->guessing==0 ) {
#line 1913 "pf.g" #line 1928 "pf.g"
_ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP; _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP;
#line 682 "PFCfgLexer.cpp" #line 683 "PFCfgLexer.cpp"
} }
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
_token = makeToken(_ttype); _token = makeToken(_ttype);
@@ -903,10 +904,10 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
_ttype = NUMBER_ADDRESS_OR_WORD; _ttype = NUMBER_ADDRESS_OR_WORD;
ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex; ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex;
bool synPredMatched308 = false; bool synPredMatched309 = false;
if ((((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_3.member(LA(2))) && (_tokenSet_3.member(LA(3))))) { if ((((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_3.member(LA(2))) && (_tokenSet_3.member(LA(3))))) {
int _m308 = mark(); int _m309 = mark();
synPredMatched308 = true; synPredMatched309 = true;
inputState->guessing++; inputState->guessing++;
try { try {
{ {
@@ -917,12 +918,12 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
} }
} }
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
synPredMatched308 = false; synPredMatched309 = false;
} }
rewind(_m308); rewind(_m309);
inputState->guessing--; inputState->guessing--;
} }
if ( synPredMatched308 ) { if ( synPredMatched309 ) {
{ {
mNUM_3DIGIT(false); mNUM_3DIGIT(false);
match('.' /* charlit */ ); match('.' /* charlit */ );
@@ -933,144 +934,144 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
mNUM_3DIGIT(false); mNUM_3DIGIT(false);
} }
if ( inputState->guessing==0 ) { if ( inputState->guessing==0 ) {
#line 1973 "pf.g" #line 1988 "pf.g"
_ttype = IPV4; _ttype = IPV4;
#line 939 "PFCfgLexer.cpp" #line 940 "PFCfgLexer.cpp"
} }
} }
else { else {
bool synPredMatched315 = false; bool synPredMatched316 = false;
if ((((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_3.member(LA(2))) && (_tokenSet_3.member(LA(3))))) { if ((((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_3.member(LA(2))) && (_tokenSet_3.member(LA(3))))) {
int _m315 = mark(); int _m316 = mark();
synPredMatched315 = true; synPredMatched316 = true;
inputState->guessing++; inputState->guessing++;
try { try {
{ {
{ // ( ... )+ { // ( ... )+
int _cnt312=0; int _cnt313=0;
for (;;) { for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false); mDIGIT(false);
} }
else { else {
if ( _cnt312>=1 ) { goto _loop312; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} if ( _cnt313>=1 ) { goto _loop313; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
} }
_cnt312++; _cnt313++;
} }
_loop312:; _loop313:;
} // ( ... )+ } // ( ... )+
match('.' /* charlit */ ); match('.' /* charlit */ );
{ // ( ... )+ { // ( ... )+
int _cnt314=0; int _cnt315=0;
for (;;) { for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false); mDIGIT(false);
} }
else { else {
if ( _cnt314>=1 ) { goto _loop314; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} if ( _cnt315>=1 ) { goto _loop315; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
} }
_cnt314++; _cnt315++;
} }
_loop314:; _loop315:;
} // ( ... )+ } // ( ... )+
} }
} }
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
synPredMatched315 = false; synPredMatched316 = false;
} }
rewind(_m315); rewind(_m316);
inputState->guessing--; inputState->guessing--;
} }
if ( synPredMatched315 ) { if ( synPredMatched316 ) {
{ {
{ // ( ... )+ { // ( ... )+
int _cnt318=0; int _cnt319=0;
for (;;) { for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false); mDIGIT(false);
} }
else { else {
if ( _cnt318>=1 ) { goto _loop318; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} if ( _cnt319>=1 ) { goto _loop319; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
} }
_cnt318++; _cnt319++;
} }
_loop318:; _loop319:;
} // ( ... )+ } // ( ... )+
match('.' /* charlit */ ); match('.' /* charlit */ );
{ // ( ... )+ { // ( ... )+
int _cnt320=0; int _cnt321=0;
for (;;) { for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false); mDIGIT(false);
} }
else { else {
if ( _cnt320>=1 ) { goto _loop320; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} if ( _cnt321>=1 ) { goto _loop321; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
} }
_cnt320++; _cnt321++;
} }
_loop320:; _loop321:;
} // ( ... )+ } // ( ... )+
} }
if ( inputState->guessing==0 ) { if ( inputState->guessing==0 ) {
#line 1976 "pf.g" #line 1991 "pf.g"
_ttype = NUMBER; _ttype = NUMBER;
#line 1022 "PFCfgLexer.cpp" #line 1023 "PFCfgLexer.cpp"
} }
} }
else { else {
bool synPredMatched283 = false; bool synPredMatched284 = false;
if (((_tokenSet_2.member(LA(1))) && (_tokenSet_4.member(LA(2))) && (true))) { if (((_tokenSet_2.member(LA(1))) && (_tokenSet_4.member(LA(2))) && (true))) {
int _m283 = mark(); int _m284 = mark();
synPredMatched283 = true; synPredMatched284 = true;
inputState->guessing++; inputState->guessing++;
try { try {
{ {
{ // ( ... )+ { // ( ... )+
int _cnt282=0; int _cnt283=0;
for (;;) { for (;;) {
if ((_tokenSet_2.member(LA(1)))) { if ((_tokenSet_2.member(LA(1)))) {
mHEX_DIGIT(false); mHEX_DIGIT(false);
} }
else { else {
if ( _cnt282>=1 ) { goto _loop282; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} if ( _cnt283>=1 ) { goto _loop283; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
} }
_cnt282++; _cnt283++;
} }
_loop282:; _loop283:;
} // ( ... )+ } // ( ... )+
match(':' /* charlit */ ); match(':' /* charlit */ );
} }
} }
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
synPredMatched283 = false; synPredMatched284 = false;
} }
rewind(_m283); rewind(_m284);
inputState->guessing--; inputState->guessing--;
} }
if ( synPredMatched283 ) { if ( synPredMatched284 ) {
{ {
{ {
{ // ( ... )+ { // ( ... )+
int _cnt287=0; int _cnt288=0;
for (;;) { for (;;) {
if ((_tokenSet_2.member(LA(1)))) { if ((_tokenSet_2.member(LA(1)))) {
mHEX_DIGIT(false); mHEX_DIGIT(false);
} }
else { else {
if ( _cnt287>=1 ) { goto _loop287; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} if ( _cnt288>=1 ) { goto _loop288; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
} }
_cnt287++; _cnt288++;
} }
_loop287:; _loop288:;
} // ( ... )+ } // ( ... )+
{ // ( ... )+ { // ( ... )+
int _cnt291=0; int _cnt292=0;
for (;;) { for (;;) {
if ((LA(1) == 0x3a /* ':' */ )) { if ((LA(1) == 0x3a /* ':' */ )) {
match(':' /* charlit */ ); match(':' /* charlit */ );
@@ -1080,34 +1081,34 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
mHEX_DIGIT(false); mHEX_DIGIT(false);
} }
else { else {
goto _loop290; goto _loop291;
} }
} }
_loop290:; _loop291:;
} // ( ... )* } // ( ... )*
} }
else { else {
if ( _cnt291>=1 ) { goto _loop291; } 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());}
} }
_cnt291++; _cnt292++;
} }
_loop291:; _loop292:;
} // ( ... )+ } // ( ... )+
} }
if ( inputState->guessing==0 ) { if ( inputState->guessing==0 ) {
#line 1958 "pf.g" #line 1973 "pf.g"
_ttype = IPV6; _ttype = IPV6;
#line 1103 "PFCfgLexer.cpp" #line 1104 "PFCfgLexer.cpp"
} }
} }
} }
else { else {
bool synPredMatched293 = false; bool synPredMatched294 = false;
if (((LA(1) == 0x3a /* ':' */ ))) { if (((LA(1) == 0x3a /* ':' */ ))) {
int _m293 = mark(); int _m294 = mark();
synPredMatched293 = true; synPredMatched294 = true;
inputState->guessing++; inputState->guessing++;
try { try {
{ {
@@ -1115,93 +1116,93 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
} }
} }
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
synPredMatched293 = false; synPredMatched294 = false;
} }
rewind(_m293); rewind(_m294);
inputState->guessing--; inputState->guessing--;
} }
if ( synPredMatched293 ) { if ( synPredMatched294 ) {
{ {
bool synPredMatched298 = false; bool synPredMatched299 = false;
if (((LA(1) == 0x3a /* ':' */ ) && (LA(2) == 0x3a /* ':' */ ) && (_tokenSet_2.member(LA(3))))) { if (((LA(1) == 0x3a /* ':' */ ) && (LA(2) == 0x3a /* ':' */ ) && (_tokenSet_2.member(LA(3))))) {
int _m298 = mark(); int _m299 = mark();
synPredMatched298 = true; synPredMatched299 = true;
inputState->guessing++; inputState->guessing++;
try { try {
{ {
match(':' /* charlit */ ); match(':' /* charlit */ );
match(':' /* charlit */ ); match(':' /* charlit */ );
{ // ( ... )+ { // ( ... )+
int _cnt297=0; int _cnt298=0;
for (;;) { for (;;) {
if ((_tokenSet_2.member(LA(1)))) { if ((_tokenSet_2.member(LA(1)))) {
mHEX_DIGIT(false); mHEX_DIGIT(false);
} }
else { else {
if ( _cnt297>=1 ) { goto _loop297; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} if ( _cnt298>=1 ) { goto _loop298; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
} }
_cnt297++; _cnt298++;
} }
_loop297:; _loop298:;
} // ( ... )+ } // ( ... )+
} }
} }
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
synPredMatched298 = false; synPredMatched299 = false;
} }
rewind(_m298); rewind(_m299);
inputState->guessing--; inputState->guessing--;
} }
if ( synPredMatched298 ) { if ( synPredMatched299 ) {
{ {
match(':' /* charlit */ ); match(':' /* charlit */ );
match(':' /* charlit */ ); match(':' /* charlit */ );
{ // ( ... )+ { // ( ... )+
int _cnt301=0; int _cnt302=0;
for (;;) { for (;;) {
if ((_tokenSet_2.member(LA(1)))) { if ((_tokenSet_2.member(LA(1)))) {
mHEX_DIGIT(false); mHEX_DIGIT(false);
} }
else { else {
if ( _cnt301>=1 ) { goto _loop301; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} if ( _cnt302>=1 ) { goto _loop302; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
} }
_cnt301++; _cnt302++;
} }
_loop301:; _loop302:;
} // ( ... )+ } // ( ... )+
{ // ( ... )* { // ( ... )*
for (;;) { for (;;) {
if ((LA(1) == 0x3a /* ':' */ )) { if ((LA(1) == 0x3a /* ':' */ )) {
match(':' /* charlit */ ); match(':' /* charlit */ );
{ // ( ... )+ { // ( ... )+
int _cnt304=0; int _cnt305=0;
for (;;) { for (;;) {
if ((_tokenSet_2.member(LA(1)))) { if ((_tokenSet_2.member(LA(1)))) {
mHEX_DIGIT(false); mHEX_DIGIT(false);
} }
else { else {
if ( _cnt304>=1 ) { goto _loop304; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} if ( _cnt305>=1 ) { goto _loop305; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
} }
_cnt304++; _cnt305++;
} }
_loop304:; _loop305:;
} // ( ... )+ } // ( ... )+
} }
else { else {
goto _loop305; goto _loop306;
} }
} }
_loop305:; _loop306:;
} // ( ... )* } // ( ... )*
} }
if ( inputState->guessing==0 ) { if ( inputState->guessing==0 ) {
#line 1964 "pf.g" #line 1979 "pf.g"
_ttype = IPV6; _ttype = IPV6;
#line 1205 "PFCfgLexer.cpp" #line 1206 "PFCfgLexer.cpp"
} }
} }
else if ((LA(1) == 0x3a /* ':' */ ) && (LA(2) == 0x3a /* ':' */ ) && (true)) { else if ((LA(1) == 0x3a /* ':' */ ) && (LA(2) == 0x3a /* ':' */ ) && (true)) {
@@ -1210,17 +1211,17 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
match(':' /* charlit */ ); match(':' /* charlit */ );
} }
if ( inputState->guessing==0 ) { if ( inputState->guessing==0 ) {
#line 1966 "pf.g" #line 1981 "pf.g"
_ttype = IPV6; _ttype = IPV6;
#line 1216 "PFCfgLexer.cpp" #line 1217 "PFCfgLexer.cpp"
} }
} }
else if ((LA(1) == 0x3a /* ':' */ ) && (true)) { else if ((LA(1) == 0x3a /* ':' */ ) && (true)) {
match(':' /* charlit */ ); match(':' /* charlit */ );
if ( inputState->guessing==0 ) { if ( inputState->guessing==0 ) {
#line 1968 "pf.g" #line 1983 "pf.g"
_ttype = COLON; _ttype = COLON;
#line 1224 "PFCfgLexer.cpp" #line 1225 "PFCfgLexer.cpp"
} }
} }
else { else {
@@ -1231,23 +1232,23 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
} }
else if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (true) && (true)) { else if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (true) && (true)) {
{ // ( ... )+ { // ( ... )+
int _cnt322=0; int _cnt323=0;
for (;;) { for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false); mDIGIT(false);
} }
else { else {
if ( _cnt322>=1 ) { goto _loop322; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} if ( _cnt323>=1 ) { goto _loop323; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
} }
_cnt322++; _cnt323++;
} }
_loop322:; _loop323:;
} // ( ... )+ } // ( ... )+
if ( inputState->guessing==0 ) { if ( inputState->guessing==0 ) {
#line 1978 "pf.g" #line 1993 "pf.g"
_ttype = INT_CONST; _ttype = INT_CONST;
#line 1251 "PFCfgLexer.cpp" #line 1252 "PFCfgLexer.cpp"
} }
} }
else if ((_tokenSet_5.member(LA(1))) && (true) && (true)) { else if ((_tokenSet_5.member(LA(1))) && (true) && (true)) {
@@ -1463,16 +1464,16 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
} }
default: default:
{ {
goto _loop325; goto _loop326;
} }
} }
} }
_loop325:; _loop326:;
} // ( ... )* } // ( ... )*
if ( inputState->guessing==0 ) { if ( inputState->guessing==0 ) {
#line 1989 "pf.g" #line 2004 "pf.g"
_ttype = WORD; _ttype = WORD;
#line 1476 "PFCfgLexer.cpp" #line 1477 "PFCfgLexer.cpp"
} }
} }
else { else {
@@ -1500,11 +1501,11 @@ void PFCfgLexer::mSTRING(bool _createToken) {
matchNot('\"' /* charlit */ ); matchNot('\"' /* charlit */ );
} }
else { else {
goto _loop328; goto _loop329;
} }
} }
_loop328:; _loop329:;
} // ( ... )* } // ( ... )*
match('\"' /* charlit */ ); match('\"' /* charlit */ );
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
File diff suppressed because it is too large Load Diff
+3 -2
View File
@@ -91,6 +91,7 @@ public:
} }
public: void cfgfile(); public: void cfgfile();
public: void comment(); public: void comment();
public: void include_command();
public: void macro_definition(); public: void macro_definition();
public: void altq_rule(); public: void altq_rule();
public: void antispoof_rule(); public: void antispoof_rule();
@@ -195,10 +196,10 @@ protected:
private: private:
static const char* tokenNames[]; static const char* tokenNames[];
#ifndef NO_STATIC_CONSTS #ifndef NO_STATIC_CONSTS
static const int NUM_TOKENS = 259; static const int NUM_TOKENS = 260;
#else #else
enum { enum {
NUM_TOKENS = 259 NUM_TOKENS = 260
}; };
#endif #endif
+254 -253
View File
@@ -14,259 +14,260 @@ struct CUSTOM_API PFCfgParserTokenTypes {
EOF_ = 1, EOF_ = 1,
NEWLINE = 4, NEWLINE = 4,
LINE_COMMENT = 5, LINE_COMMENT = 5,
WORD = 6, INCLUDE_COMMAND = 6,
EQUAL = 7, WORD = 7,
ANTISPOOF = 8, EQUAL = 8,
ALTQ = 9, ANTISPOOF = 9,
QUEUE = 10, ALTQ = 10,
SET = 11, QUEUE = 11,
TIMEOUT = 12, SET = 12,
// "ruleset-optimization" = 13 TIMEOUT = 13,
LITERAL_optimization = 14, // "ruleset-optimization" = 14
LITERAL_aggressive = 15, LITERAL_optimization = 15,
LITERAL_conservative = 16, LITERAL_aggressive = 16,
// "high-latency" = 17 LITERAL_conservative = 17,
LITERAL_normal = 18, // "high-latency" = 18
LITERAL_satellite = 19, LITERAL_normal = 19,
LITERAL_limit = 20, LITERAL_satellite = 20,
LITERAL_loginterface = 21, LITERAL_limit = 21,
// "block-policy" = 22 LITERAL_loginterface = 22,
DROP = 23, // "block-policy" = 23
RETURN = 24, DROP = 24,
// "state-policy" = 25 RETURN = 25,
// "if-bound" = 26 // "state-policy" = 26
LITERAL_floating = 27, // "if-bound" = 27
// "state-defaults" = 28 LITERAL_floating = 28,
// "require-order" = 29 // "state-defaults" = 29
LITERAL_fingerprints = 30, // "require-order" = 30
LITERAL_skip = 31, LITERAL_fingerprints = 31,
ON = 32, LITERAL_skip = 32,
OPENING_BRACE = 33, ON = 33,
COMMA = 34, OPENING_BRACE = 34,
CLOSING_BRACE = 35, COMMA = 35,
LITERAL_debug = 36, CLOSING_BRACE = 36,
LITERAL_reassemble = 37, LITERAL_debug = 37,
LITERAL_hostid = 38, LITERAL_reassemble = 38,
// "tcp.first" = 39 LITERAL_hostid = 39,
// "tcp.opening" = 40 // "tcp.first" = 40
// "tcp.established" = 41 // "tcp.opening" = 41
// "tcp.closing" = 42 // "tcp.established" = 42
// "tcp.finwait" = 43 // "tcp.closing" = 43
// "tcp.closed" = 44 // "tcp.finwait" = 44
// "udp.first" = 45 // "tcp.closed" = 45
// "udp.single" = 46 // "udp.first" = 46
// "udp.multiple" = 47 // "udp.single" = 47
// "icmp.first" = 48 // "udp.multiple" = 48
// "icmp.error" = 49 // "icmp.first" = 49
// "other.first" = 50 // "icmp.error" = 50
// "other.single" = 51 // "other.first" = 51
// "other.multiple" = 52 // "other.single" = 52
LITERAL_frag = 53, // "other.multiple" = 53
LITERAL_interval = 54, LITERAL_frag = 54,
// "src.track" = 55 LITERAL_interval = 55,
// "adaptive.start" = 56 // "src.track" = 56
// "adaptive.end" = 57 // "adaptive.start" = 57
INT_CONST = 58, // "adaptive.end" = 58
LITERAL_frags = 59, INT_CONST = 59,
LITERAL_states = 60, LITERAL_frags = 60,
// "src-nodes" = 61 LITERAL_states = 61,
LITERAL_tables = 62, // "src-nodes" = 62
// "tables-entries" = 63 LITERAL_tables = 63,
SCRUB = 64, // "tables-entries" = 64
MATCH = 65, SCRUB = 65,
TABLE = 66, MATCH = 66,
LESS_THAN = 67, TABLE = 67,
GREATER_THAN = 68, LESS_THAN = 68,
PERSIST = 69, GREATER_THAN = 69,
CONST_WORD = 70, PERSIST = 70,
COUNTERS = 71, CONST_WORD = 71,
FILE = 72, COUNTERS = 72,
STRING = 73, FILE = 73,
EXLAMATION = 74, STRING = 74,
COLON = 75, EXLAMATION = 75,
NETWORK = 76, COLON = 76,
BROADCAST = 77, NETWORK = 77,
PEER = 78, BROADCAST = 78,
SELF = 79, PEER = 79,
IPV4 = 80, SELF = 80,
NUMBER = 81, IPV4 = 81,
SLASH = 82, NUMBER = 82,
NO = 83, SLASH = 83,
NAT = 84, NO = 84,
PASS = 85, NAT = 85,
MINUS = 86, PASS = 86,
STATIC_PORT = 87, MINUS = 87,
RDR = 88, STATIC_PORT = 88,
OPENING_PAREN = 89, RDR = 89,
CLOSING_PAREN = 90, OPENING_PAREN = 90,
PORT = 91, CLOSING_PAREN = 91,
IPV6 = 92, PORT = 92,
STAR = 93, IPV6 = 93,
BITMASK = 94, STAR = 94,
RANDOM = 95, BITMASK = 95,
SOURCE_HASH = 96, RANDOM = 96,
HEX_KEY = 97, SOURCE_HASH = 97,
STRING_KEY = 98, HEX_KEY = 98,
ROUND_ROBIN = 99, STRING_KEY = 99,
STICKY_ADDRESS = 100, ROUND_ROBIN = 100,
BINAT = 101, STICKY_ADDRESS = 101,
BLOCK = 102, BINAT = 102,
RETURN_RST = 103, BLOCK = 103,
TTL = 104, RETURN_RST = 104,
RETURN_ICMP = 105, TTL = 105,
RETURN_ICMP6 = 106, RETURN_ICMP = 106,
IN_WORD = 107, RETURN_ICMP6 = 107,
OUT_WORD = 108, IN_WORD = 108,
LOG = 109, OUT_WORD = 109,
ALL = 110, LOG = 110,
USER = 111, ALL = 111,
TO = 112, USER = 112,
QUICK = 113, TO = 113,
INET = 114, QUICK = 114,
INET6 = 115, INET = 115,
PROTO = 116, INET6 = 116,
IP = 117, PROTO = 117,
ICMP = 118, IP = 118,
IGMP = 119, ICMP = 119,
TCP = 120, IGMP = 120,
UDP = 121, TCP = 121,
RDP = 122, UDP = 122,
RSVP = 123, RDP = 123,
GRE = 124, RSVP = 124,
ESP = 125, GRE = 125,
AH = 126, ESP = 126,
EIGRP = 127, AH = 127,
OSPF = 128, EIGRP = 128,
IPIP = 129, OSPF = 129,
VRRP = 130, IPIP = 130,
L2TP = 131, VRRP = 131,
ISIS = 132, L2TP = 132,
FROM = 133, ISIS = 133,
URPF_FAILED = 134, FROM = 134,
ANY = 135, URPF_FAILED = 135,
NO_ROUTE = 136, ANY = 136,
ROUTE_TO = 137, NO_ROUTE = 137,
REPLY_TO = 138, ROUTE_TO = 138,
LITERAL_fragment = 139, REPLY_TO = 139,
LITERAL_crop = 140, LITERAL_fragment = 140,
// "drop-ovl" = 141 LITERAL_crop = 141,
// "no-df" = 142 // "drop-ovl" = 142
// "min-ttl" = 143 // "no-df" = 143
// "max-mss" = 144 // "min-ttl" = 144
// "random-id" = 145 // "max-mss" = 145
FLAGS = 146, // "random-id" = 146
ICMP_TYPE = 147, FLAGS = 147,
ICMP_CODE = 148, ICMP_TYPE = 148,
LITERAL_echorep = 149, ICMP_CODE = 149,
LITERAL_unreach = 150, LITERAL_echorep = 150,
LITERAL_squench = 151, LITERAL_unreach = 151,
LITERAL_redir = 152, LITERAL_squench = 152,
LITERAL_althost = 153, LITERAL_redir = 153,
LITERAL_echoreq = 154, LITERAL_althost = 154,
LITERAL_routeradv = 155, LITERAL_echoreq = 155,
LITERAL_routersol = 156, LITERAL_routeradv = 156,
LITERAL_timex = 157, LITERAL_routersol = 157,
LITERAL_paramprob = 158, LITERAL_timex = 158,
LITERAL_timereq = 159, LITERAL_paramprob = 159,
LITERAL_timerep = 160, LITERAL_timereq = 160,
LITERAL_inforeq = 161, LITERAL_timerep = 161,
LITERAL_inforep = 162, LITERAL_inforeq = 162,
LITERAL_maskreq = 163, LITERAL_inforep = 163,
LITERAL_maskrep = 164, LITERAL_maskreq = 164,
LITERAL_trace = 165, LITERAL_maskrep = 165,
LITERAL_dataconv = 166, LITERAL_trace = 166,
LITERAL_mobredir = 167, LITERAL_dataconv = 167,
// "ipv6-where" = 168 LITERAL_mobredir = 168,
// "ipv6-here" = 169 // "ipv6-where" = 169
LITERAL_mobregreq = 170, // "ipv6-here" = 170
LITERAL_mobregrep = 171, LITERAL_mobregreq = 171,
LITERAL_photuris = 172, LITERAL_mobregrep = 172,
// "net-unr" = 173 LITERAL_photuris = 173,
// "host-unr" = 174 // "net-unr" = 174
// "proto-unr" = 175 // "host-unr" = 175
// "port-unr" = 176 // "proto-unr" = 176
LITERAL_needfrag = 177, // "port-unr" = 177
LITERAL_srcfail = 178, LITERAL_needfrag = 178,
// "net-unk" = 179 LITERAL_srcfail = 179,
// "host-unk" = 180 // "net-unk" = 180
LITERAL_isolate = 181, // "host-unk" = 181
// "net-prohib" = 182 LITERAL_isolate = 182,
// "host-prohib" = 183 // "net-prohib" = 183
// "net-tos" = 184 // "host-prohib" = 184
// "host-tos" = 185 // "net-tos" = 185
// "filter-prohib" = 186 // "host-tos" = 186
// "host-preced" = 187 // "filter-prohib" = 187
// "cutoff-preced" = 188 // "host-preced" = 188
// "redir-net" = 189 // "cutoff-preced" = 189
// "redir-host" = 190 // "redir-net" = 190
// "redir-tos-net" = 191 // "redir-host" = 191
// "redir-tos-host" = 192 // "redir-tos-net" = 192
// "normal-adv" = 193 // "redir-tos-host" = 193
// "common-adv" = 194 // "normal-adv" = 194
LITERAL_transit = 195, // "common-adv" = 195
LITERAL_reassemb = 196, LITERAL_transit = 196,
LITERAL_badhead = 197, LITERAL_reassemb = 197,
LITERAL_optmiss = 198, LITERAL_badhead = 198,
LITERAL_badlen = 199, LITERAL_optmiss = 199,
// "unknown-ind" = 200 LITERAL_badlen = 200,
// "auth-fail" = 201 // "unknown-ind" = 201
// "decrypt-fail" = 202 // "auth-fail" = 202
ICMP6_TYPE = 203, // "decrypt-fail" = 203
TAGGED = 204, ICMP6_TYPE = 204,
TAG = 205, TAGGED = 205,
KEEP = 206, TAG = 206,
MODULATE = 207, KEEP = 207,
SYNPROXY = 208, MODULATE = 208,
STATE = 209, SYNPROXY = 209,
LABEL = 210, STATE = 210,
EXIT = 211, LABEL = 211,
QUIT = 212, EXIT = 212,
INTRFACE = 213, QUIT = 213,
ICMP6 = 214, INTRFACE = 214,
IGRP = 215, ICMP6 = 215,
IPSEC = 216, IGRP = 216,
NOS = 217, IPSEC = 217,
PCP = 218, NOS = 218,
PIM = 219, PCP = 219,
PPTP = 220, PIM = 220,
RIP = 221, PPTP = 221,
SNP = 222, RIP = 222,
HOST = 223, SNP = 223,
RANGE = 224, HOST = 224,
LOG_LEVEL_ALERTS = 225, RANGE = 225,
LOG_LEVEL_CRITICAL = 226, LOG_LEVEL_ALERTS = 226,
LOG_LEVEL_DEBUGGING = 227, LOG_LEVEL_CRITICAL = 227,
LOG_LEVEL_EMERGENCIES = 228, LOG_LEVEL_DEBUGGING = 228,
LOG_LEVEL_ERRORS = 229, LOG_LEVEL_EMERGENCIES = 229,
LOG_LEVEL_INFORMATIONAL = 230, LOG_LEVEL_ERRORS = 230,
LOG_LEVEL_NOTIFICATIONS = 231, LOG_LEVEL_INFORMATIONAL = 231,
LOG_LEVEL_WARNINGS = 232, LOG_LEVEL_NOTIFICATIONS = 232,
LOG_LEVEL_DISABLE = 233, LOG_LEVEL_WARNINGS = 233,
LOG_LEVEL_INACTIVE = 234, LOG_LEVEL_DISABLE = 234,
Whitespace = 235, LOG_LEVEL_INACTIVE = 235,
HEX_CONST = 236, Whitespace = 236,
NEG_INT_CONST = 237, HEX_CONST = 237,
HEX_DIGIT = 238, NEG_INT_CONST = 238,
DIGIT = 239, HEX_DIGIT = 239,
NUM_3DIGIT = 240, DIGIT = 240,
NUM_HEX_4DIGIT = 241, NUM_3DIGIT = 241,
NUMBER_ADDRESS_OR_WORD = 242, NUM_HEX_4DIGIT = 242,
PIPE_CHAR = 243, NUMBER_ADDRESS_OR_WORD = 243,
NUMBER_SIGN = 244, PIPE_CHAR = 244,
PERCENT = 245, NUMBER_SIGN = 245,
AMPERSAND = 246, PERCENT = 246,
APOSTROPHE = 247, AMPERSAND = 247,
PLUS = 248, APOSTROPHE = 248,
DOT = 249, PLUS = 249,
SEMICOLON = 250, DOT = 250,
QUESTION = 251, SEMICOLON = 251,
COMMERCIAL_AT = 252, QUESTION = 252,
OPENING_SQUARE = 253, COMMERCIAL_AT = 253,
CLOSING_SQUARE = 254, OPENING_SQUARE = 254,
CARET = 255, CLOSING_SQUARE = 255,
UNDERLINE = 256, CARET = 256,
TILDE = 257, UNDERLINE = 257,
DOUBLE_QUOTE = 258, TILDE = 258,
DOUBLE_QUOTE = 259,
NULL_TREE_LOOKAHEAD = 3 NULL_TREE_LOOKAHEAD = 3
}; };
#ifdef __cplusplus #ifdef __cplusplus
+254 -253
View File
@@ -2,256 +2,257 @@
PFCfgParser // output token vocab name PFCfgParser // output token vocab name
NEWLINE=4 NEWLINE=4
LINE_COMMENT=5 LINE_COMMENT=5
WORD=6 INCLUDE_COMMAND="include"=6
EQUAL=7 WORD=7
ANTISPOOF="antispoof"=8 EQUAL=8
ALTQ="altq"=9 ANTISPOOF="antispoof"=9
QUEUE="queue"=10 ALTQ="altq"=10
SET="set"=11 QUEUE="queue"=11
TIMEOUT="timeout"=12 SET="set"=12
"ruleset-optimization"=13 TIMEOUT="timeout"=13
LITERAL_optimization="optimization"=14 "ruleset-optimization"=14
LITERAL_aggressive="aggressive"=15 LITERAL_optimization="optimization"=15
LITERAL_conservative="conservative"=16 LITERAL_aggressive="aggressive"=16
"high-latency"=17 LITERAL_conservative="conservative"=17
LITERAL_normal="normal"=18 "high-latency"=18
LITERAL_satellite="satellite"=19 LITERAL_normal="normal"=19
LITERAL_limit="limit"=20 LITERAL_satellite="satellite"=20
LITERAL_loginterface="loginterface"=21 LITERAL_limit="limit"=21
"block-policy"=22 LITERAL_loginterface="loginterface"=22
DROP="drop"=23 "block-policy"=23
RETURN="return"=24 DROP="drop"=24
"state-policy"=25 RETURN="return"=25
"if-bound"=26 "state-policy"=26
LITERAL_floating="floating"=27 "if-bound"=27
"state-defaults"=28 LITERAL_floating="floating"=28
"require-order"=29 "state-defaults"=29
LITERAL_fingerprints="fingerprints"=30 "require-order"=30
LITERAL_skip="skip"=31 LITERAL_fingerprints="fingerprints"=31
ON="on"=32 LITERAL_skip="skip"=32
OPENING_BRACE=33 ON="on"=33
COMMA=34 OPENING_BRACE=34
CLOSING_BRACE=35 COMMA=35
LITERAL_debug="debug"=36 CLOSING_BRACE=36
LITERAL_reassemble="reassemble"=37 LITERAL_debug="debug"=37
LITERAL_hostid="hostid"=38 LITERAL_reassemble="reassemble"=38
"tcp.first"=39 LITERAL_hostid="hostid"=39
"tcp.opening"=40 "tcp.first"=40
"tcp.established"=41 "tcp.opening"=41
"tcp.closing"=42 "tcp.established"=42
"tcp.finwait"=43 "tcp.closing"=43
"tcp.closed"=44 "tcp.finwait"=44
"udp.first"=45 "tcp.closed"=45
"udp.single"=46 "udp.first"=46
"udp.multiple"=47 "udp.single"=47
"icmp.first"=48 "udp.multiple"=48
"icmp.error"=49 "icmp.first"=49
"other.first"=50 "icmp.error"=50
"other.single"=51 "other.first"=51
"other.multiple"=52 "other.single"=52
LITERAL_frag="frag"=53 "other.multiple"=53
LITERAL_interval="interval"=54 LITERAL_frag="frag"=54
"src.track"=55 LITERAL_interval="interval"=55
"adaptive.start"=56 "src.track"=56
"adaptive.end"=57 "adaptive.start"=57
INT_CONST=58 "adaptive.end"=58
LITERAL_frags="frags"=59 INT_CONST=59
LITERAL_states="states"=60 LITERAL_frags="frags"=60
"src-nodes"=61 LITERAL_states="states"=61
LITERAL_tables="tables"=62 "src-nodes"=62
"tables-entries"=63 LITERAL_tables="tables"=63
SCRUB="scrub"=64 "tables-entries"=64
MATCH="match"=65 SCRUB="scrub"=65
TABLE="table"=66 MATCH="match"=66
LESS_THAN=67 TABLE="table"=67
GREATER_THAN=68 LESS_THAN=68
PERSIST="persist"=69 GREATER_THAN=69
CONST_WORD="const"=70 PERSIST="persist"=70
COUNTERS="counters"=71 CONST_WORD="const"=71
FILE="file"=72 COUNTERS="counters"=72
STRING=73 FILE="file"=73
EXLAMATION=74 STRING=74
COLON=75 EXLAMATION=75
NETWORK="network"=76 COLON=76
BROADCAST="broadcast"=77 NETWORK="network"=77
PEER="peer"=78 BROADCAST="broadcast"=78
SELF="self"=79 PEER="peer"=79
IPV4=80 SELF="self"=80
NUMBER=81 IPV4=81
SLASH=82 NUMBER=82
NO="no"=83 SLASH=83
NAT="nat"=84 NO="no"=84
PASS="pass"=85 NAT="nat"=85
MINUS=86 PASS="pass"=86
STATIC_PORT="static-port"=87 MINUS=87
RDR="rdr"=88 STATIC_PORT="static-port"=88
OPENING_PAREN=89 RDR="rdr"=89
CLOSING_PAREN=90 OPENING_PAREN=90
PORT="port"=91 CLOSING_PAREN=91
IPV6=92 PORT="port"=92
STAR=93 IPV6=93
BITMASK="bitmask"=94 STAR=94
RANDOM="random"=95 BITMASK="bitmask"=95
SOURCE_HASH="source-hash"=96 RANDOM="random"=96
HEX_KEY="hex-key"=97 SOURCE_HASH="source-hash"=97
STRING_KEY="string-key"=98 HEX_KEY="hex-key"=98
ROUND_ROBIN="round-robin"=99 STRING_KEY="string-key"=99
STICKY_ADDRESS="sticky-address"=100 ROUND_ROBIN="round-robin"=100
BINAT="binat"=101 STICKY_ADDRESS="sticky-address"=101
BLOCK="block"=102 BINAT="binat"=102
RETURN_RST="return-rst"=103 BLOCK="block"=103
TTL=104 RETURN_RST="return-rst"=104
RETURN_ICMP="return-icmp"=105 TTL=105
RETURN_ICMP6=106 RETURN_ICMP="return-icmp"=106
IN_WORD="in"=107 RETURN_ICMP6=107
OUT_WORD="out"=108 IN_WORD="in"=108
LOG="log"=109 OUT_WORD="out"=109
ALL="all"=110 LOG="log"=110
USER="user"=111 ALL="all"=111
TO="to"=112 USER="user"=112
QUICK="quick"=113 TO="to"=113
INET="inet"=114 QUICK="quick"=114
INET6="inet6"=115 INET="inet"=115
PROTO="proto"=116 INET6="inet6"=116
IP="ip"=117 PROTO="proto"=117
ICMP="icmp"=118 IP="ip"=118
IGMP="igmp"=119 ICMP="icmp"=119
TCP="tcp"=120 IGMP="igmp"=120
UDP="udp"=121 TCP="tcp"=121
RDP="rdp"=122 UDP="udp"=122
RSVP="rsvp"=123 RDP="rdp"=123
GRE="gre"=124 RSVP="rsvp"=124
ESP="esp"=125 GRE="gre"=125
AH="ah"=126 ESP="esp"=126
EIGRP="eigrp"=127 AH="ah"=127
OSPF="ospf"=128 EIGRP="eigrp"=128
IPIP="ipip"=129 OSPF="ospf"=129
VRRP="vrrp"=130 IPIP="ipip"=130
L2TP="l2tp"=131 VRRP="vrrp"=131
ISIS="isis"=132 L2TP="l2tp"=132
FROM="from"=133 ISIS="isis"=133
URPF_FAILED="urpf-failed"=134 FROM="from"=134
ANY="any"=135 URPF_FAILED="urpf-failed"=135
NO_ROUTE="no-route"=136 ANY="any"=136
ROUTE_TO="route-to"=137 NO_ROUTE="no-route"=137
REPLY_TO="reply-to"=138 ROUTE_TO="route-to"=138
LITERAL_fragment="fragment"=139 REPLY_TO="reply-to"=139
LITERAL_crop="crop"=140 LITERAL_fragment="fragment"=140
"drop-ovl"=141 LITERAL_crop="crop"=141
"no-df"=142 "drop-ovl"=142
"min-ttl"=143 "no-df"=143
"max-mss"=144 "min-ttl"=144
"random-id"=145 "max-mss"=145
FLAGS="flags"=146 "random-id"=146
ICMP_TYPE="icmp-type"=147 FLAGS="flags"=147
ICMP_CODE="code"=148 ICMP_TYPE="icmp-type"=148
LITERAL_echorep="echorep"=149 ICMP_CODE="code"=149
LITERAL_unreach="unreach"=150 LITERAL_echorep="echorep"=150
LITERAL_squench="squench"=151 LITERAL_unreach="unreach"=151
LITERAL_redir="redir"=152 LITERAL_squench="squench"=152
LITERAL_althost="althost"=153 LITERAL_redir="redir"=153
LITERAL_echoreq="echoreq"=154 LITERAL_althost="althost"=154
LITERAL_routeradv="routeradv"=155 LITERAL_echoreq="echoreq"=155
LITERAL_routersol="routersol"=156 LITERAL_routeradv="routeradv"=156
LITERAL_timex="timex"=157 LITERAL_routersol="routersol"=157
LITERAL_paramprob="paramprob"=158 LITERAL_timex="timex"=158
LITERAL_timereq="timereq"=159 LITERAL_paramprob="paramprob"=159
LITERAL_timerep="timerep"=160 LITERAL_timereq="timereq"=160
LITERAL_inforeq="inforeq"=161 LITERAL_timerep="timerep"=161
LITERAL_inforep="inforep"=162 LITERAL_inforeq="inforeq"=162
LITERAL_maskreq="maskreq"=163 LITERAL_inforep="inforep"=163
LITERAL_maskrep="maskrep"=164 LITERAL_maskreq="maskreq"=164
LITERAL_trace="trace"=165 LITERAL_maskrep="maskrep"=165
LITERAL_dataconv="dataconv"=166 LITERAL_trace="trace"=166
LITERAL_mobredir="mobredir"=167 LITERAL_dataconv="dataconv"=167
"ipv6-where"=168 LITERAL_mobredir="mobredir"=168
"ipv6-here"=169 "ipv6-where"=169
LITERAL_mobregreq="mobregreq"=170 "ipv6-here"=170
LITERAL_mobregrep="mobregrep"=171 LITERAL_mobregreq="mobregreq"=171
LITERAL_photuris="photuris"=172 LITERAL_mobregrep="mobregrep"=172
"net-unr"=173 LITERAL_photuris="photuris"=173
"host-unr"=174 "net-unr"=174
"proto-unr"=175 "host-unr"=175
"port-unr"=176 "proto-unr"=176
LITERAL_needfrag="needfrag"=177 "port-unr"=177
LITERAL_srcfail="srcfail"=178 LITERAL_needfrag="needfrag"=178
"net-unk"=179 LITERAL_srcfail="srcfail"=179
"host-unk"=180 "net-unk"=180
LITERAL_isolate="isolate"=181 "host-unk"=181
"net-prohib"=182 LITERAL_isolate="isolate"=182
"host-prohib"=183 "net-prohib"=183
"net-tos"=184 "host-prohib"=184
"host-tos"=185 "net-tos"=185
"filter-prohib"=186 "host-tos"=186
"host-preced"=187 "filter-prohib"=187
"cutoff-preced"=188 "host-preced"=188
"redir-net"=189 "cutoff-preced"=189
"redir-host"=190 "redir-net"=190
"redir-tos-net"=191 "redir-host"=191
"redir-tos-host"=192 "redir-tos-net"=192
"normal-adv"=193 "redir-tos-host"=193
"common-adv"=194 "normal-adv"=194
LITERAL_transit="transit"=195 "common-adv"=195
LITERAL_reassemb="reassemb"=196 LITERAL_transit="transit"=196
LITERAL_badhead="badhead"=197 LITERAL_reassemb="reassemb"=197
LITERAL_optmiss="optmiss"=198 LITERAL_badhead="badhead"=198
LITERAL_badlen="badlen"=199 LITERAL_optmiss="optmiss"=199
"unknown-ind"=200 LITERAL_badlen="badlen"=200
"auth-fail"=201 "unknown-ind"=201
"decrypt-fail"=202 "auth-fail"=202
ICMP6_TYPE="icmp6-type"=203 "decrypt-fail"=203
TAGGED="tagged"=204 ICMP6_TYPE="icmp6-type"=204
TAG="tag"=205 TAGGED="tagged"=205
KEEP="keep"=206 TAG="tag"=206
MODULATE="modulate"=207 KEEP="keep"=207
SYNPROXY="synproxy"=208 MODULATE="modulate"=208
STATE="state"=209 SYNPROXY="synproxy"=209
LABEL="label"=210 STATE="state"=210
EXIT="exit"=211 LABEL="label"=211
QUIT="quit"=212 EXIT="exit"=212
INTRFACE="interface"=213 QUIT="quit"=213
ICMP6="icmp6"=214 INTRFACE="interface"=214
IGRP="igrp"=215 ICMP6="icmp6"=215
IPSEC="ipsec"=216 IGRP="igrp"=216
NOS="nos"=217 IPSEC="ipsec"=217
PCP="pcp"=218 NOS="nos"=218
PIM="pim"=219 PCP="pcp"=219
PPTP="pptp"=220 PIM="pim"=220
RIP="rip"=221 PPTP="pptp"=221
SNP="snp"=222 RIP="rip"=222
HOST="host"=223 SNP="snp"=223
RANGE="range"=224 HOST="host"=224
LOG_LEVEL_ALERTS="alerts"=225 RANGE="range"=225
LOG_LEVEL_CRITICAL="critical"=226 LOG_LEVEL_ALERTS="alerts"=226
LOG_LEVEL_DEBUGGING="debugging"=227 LOG_LEVEL_CRITICAL="critical"=227
LOG_LEVEL_EMERGENCIES="emergencies"=228 LOG_LEVEL_DEBUGGING="debugging"=228
LOG_LEVEL_ERRORS="errors"=229 LOG_LEVEL_EMERGENCIES="emergencies"=229
LOG_LEVEL_INFORMATIONAL="informational"=230 LOG_LEVEL_ERRORS="errors"=230
LOG_LEVEL_NOTIFICATIONS="notifications"=231 LOG_LEVEL_INFORMATIONAL="informational"=231
LOG_LEVEL_WARNINGS="warnings"=232 LOG_LEVEL_NOTIFICATIONS="notifications"=232
LOG_LEVEL_DISABLE="disable"=233 LOG_LEVEL_WARNINGS="warnings"=233
LOG_LEVEL_INACTIVE="inactive"=234 LOG_LEVEL_DISABLE="disable"=234
Whitespace=235 LOG_LEVEL_INACTIVE="inactive"=235
HEX_CONST=236 Whitespace=236
NEG_INT_CONST=237 HEX_CONST=237
HEX_DIGIT=238 NEG_INT_CONST=238
DIGIT=239 HEX_DIGIT=239
NUM_3DIGIT=240 DIGIT=240
NUM_HEX_4DIGIT=241 NUM_3DIGIT=241
NUMBER_ADDRESS_OR_WORD=242 NUM_HEX_4DIGIT=242
PIPE_CHAR=243 NUMBER_ADDRESS_OR_WORD=243
NUMBER_SIGN=244 PIPE_CHAR=244
PERCENT=245 NUMBER_SIGN=245
AMPERSAND=246 PERCENT=246
APOSTROPHE=247 AMPERSAND=247
PLUS=248 APOSTROPHE=248
DOT=249 PLUS=249
SEMICOLON=250 DOT=250
QUESTION=251 SEMICOLON=251
COMMERCIAL_AT=252 QUESTION=252
OPENING_SQUARE=253 COMMERCIAL_AT=253
CLOSING_SQUARE=254 OPENING_SQUARE=254
CARET=255 CLOSING_SQUARE=255
UNDERLINE=256 CARET=256
TILDE=257 UNDERLINE=257
DOUBLE_QUOTE=258 TILDE=258
DOUBLE_QUOTE=259
+15
View File
@@ -113,6 +113,8 @@ options
cfgfile : cfgfile :
( (
comment comment
|
include_command
| |
macro_definition macro_definition
| |
@@ -151,6 +153,17 @@ cfgfile :
//**************************************************************** //****************************************************************
comment : LINE_COMMENT ; comment : LINE_COMMENT ;
//****************************************************************
include_command : INCLUDE_COMMAND
{
importer->clear();
importer->setCurrentLineNumber(LT(0)->getLine());
importer->addMessageToLog(
QString("Error: import of 'include' commands is not supported."));
consumeUntil(NEWLINE);
}
;
//**************************************************************** //****************************************************************
macro_definition : WORD EQUAL macro_definition : WORD EQUAL
{ {
@@ -1773,6 +1786,8 @@ options
tokens tokens
{ {
INCLUDE_COMMAND = "include";
EXIT = "exit"; EXIT = "exit";
QUIT = "quit"; QUIT = "quit";