mirror of
https://github.com/fwbuilder/fwbuilder
synced 2026-03-21 18:57:14 +01:00
see #2436 fixed handling of the synproxy state option, minor tweaks to the grammar
This commit is contained in:
parent
afdc3707de
commit
8082f602b3
@ -608,7 +608,7 @@ void PFImporter::pushPolicyRule()
|
||||
if (state_op == "no") ropt->setBool("stateless", true);
|
||||
if (state_op == "modulate") ropt->setBool("pf_modulate_state", true);
|
||||
if (state_op == "keep") ropt->setBool("stateless", false);
|
||||
if (state_op == "synproxy") ropt->setBool("pf_synproxy", false);
|
||||
if (state_op == "synproxy") ropt->setBool("pf_synproxy", true);
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@ -477,7 +477,7 @@ void PFCfgLexer::mNEWLINE(bool _createToken) {
|
||||
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1083 "pf.g"
|
||||
#line 1085 "pf.g"
|
||||
newline();
|
||||
#line 483 "PFCfgLexer.cpp"
|
||||
}
|
||||
@ -558,7 +558,7 @@ void PFCfgLexer::mWhitespace(bool _createToken) {
|
||||
}
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1078 "pf.g"
|
||||
#line 1080 "pf.g"
|
||||
_ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP;
|
||||
#line 564 "PFCfgLexer.cpp"
|
||||
}
|
||||
@ -775,7 +775,7 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
mNUM_3DIGIT(false);
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1120 "pf.g"
|
||||
#line 1122 "pf.g"
|
||||
_ttype = IPV4;
|
||||
#line 781 "PFCfgLexer.cpp"
|
||||
}
|
||||
@ -858,7 +858,7 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
} // ( ... )+
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1123 "pf.g"
|
||||
#line 1125 "pf.g"
|
||||
_ttype = NUMBER;
|
||||
#line 864 "PFCfgLexer.cpp"
|
||||
}
|
||||
@ -900,7 +900,7 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
_loop214:;
|
||||
} // ( ... )*
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1146 "pf.g"
|
||||
#line 1148 "pf.g"
|
||||
_ttype = IPV6;
|
||||
#line 906 "PFCfgLexer.cpp"
|
||||
}
|
||||
@ -997,7 +997,7 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
}
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1137 "pf.g"
|
||||
#line 1139 "pf.g"
|
||||
_ttype = IPV6;
|
||||
#line 1003 "PFCfgLexer.cpp"
|
||||
}
|
||||
@ -1020,7 +1020,7 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
_loop210:;
|
||||
} // ( ... )+
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1140 "pf.g"
|
||||
#line 1142 "pf.g"
|
||||
_ttype = IPV6;
|
||||
#line 1026 "PFCfgLexer.cpp"
|
||||
}
|
||||
@ -1031,7 +1031,7 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
|
||||
}
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1142 "pf.g"
|
||||
#line 1144 "pf.g"
|
||||
_ttype = IPV6;
|
||||
#line 1037 "PFCfgLexer.cpp"
|
||||
}
|
||||
@ -1040,7 +1040,7 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
match(':' /* charlit */ );
|
||||
match(':' /* charlit */ );
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1149 "pf.g"
|
||||
#line 1151 "pf.g"
|
||||
_ttype = IPV6;
|
||||
#line 1046 "PFCfgLexer.cpp"
|
||||
}
|
||||
@ -1061,7 +1061,7 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
_loop195:;
|
||||
} // ( ... )+
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1128 "pf.g"
|
||||
#line 1130 "pf.g"
|
||||
_ttype = INT_CONST;
|
||||
#line 1067 "PFCfgLexer.cpp"
|
||||
}
|
||||
@ -1069,7 +1069,7 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
else if ((LA(1) == 0x3a /* ':' */ ) && (true)) {
|
||||
match(':' /* charlit */ );
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1152 "pf.g"
|
||||
#line 1154 "pf.g"
|
||||
_ttype = COLON;
|
||||
#line 1075 "PFCfgLexer.cpp"
|
||||
}
|
||||
@ -1289,7 +1289,7 @@ void PFCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) {
|
||||
_loop217:;
|
||||
} // ( ... )*
|
||||
if ( inputState->guessing==0 ) {
|
||||
#line 1164 "pf.g"
|
||||
#line 1166 "pf.g"
|
||||
_ttype = WORD;
|
||||
#line 1295 "PFCfgLexer.cpp"
|
||||
}
|
||||
|
||||
@ -504,12 +504,12 @@ void PFCfgParser::pass_command() {
|
||||
|
||||
#line 506 "PFCfgParser.cpp"
|
||||
rule_extended();
|
||||
match(NEWLINE);
|
||||
#line 377 "pf.g"
|
||||
|
||||
importer->pushRule();
|
||||
|
||||
#line 513 "PFCfgParser.cpp"
|
||||
#line 512 "PFCfgParser.cpp"
|
||||
match(NEWLINE);
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
@ -522,7 +522,7 @@ void PFCfgParser::block_command() {
|
||||
|
||||
try { // for error handling
|
||||
match(BLOCK);
|
||||
#line 383 "pf.g"
|
||||
#line 384 "pf.g"
|
||||
|
||||
importer->clear();
|
||||
importer->setCurrentLineNumber(LT(0)->getLine());
|
||||
@ -532,12 +532,12 @@ void PFCfgParser::block_command() {
|
||||
|
||||
#line 534 "PFCfgParser.cpp"
|
||||
rule_extended();
|
||||
match(NEWLINE);
|
||||
#line 391 "pf.g"
|
||||
#line 392 "pf.g"
|
||||
|
||||
importer->pushRule();
|
||||
|
||||
#line 541 "PFCfgParser.cpp"
|
||||
#line 540 "PFCfgParser.cpp"
|
||||
match(NEWLINE);
|
||||
}
|
||||
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
|
||||
reportError(ex);
|
||||
@ -1118,7 +1118,7 @@ void PFCfgParser::direction() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 409 "pf.g"
|
||||
#line 411 "pf.g"
|
||||
|
||||
importer->direction = LT(0)->getText();
|
||||
|
||||
@ -1174,7 +1174,7 @@ void PFCfgParser::logging() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 416 "pf.g"
|
||||
#line 418 "pf.g"
|
||||
|
||||
importer->logging = true;
|
||||
|
||||
@ -1191,7 +1191,7 @@ void PFCfgParser::quick() {
|
||||
|
||||
try { // for error handling
|
||||
match(QUICK);
|
||||
#line 438 "pf.g"
|
||||
#line 440 "pf.g"
|
||||
|
||||
importer->quick = true;
|
||||
|
||||
@ -1274,7 +1274,7 @@ void PFCfgParser::address_family() {
|
||||
case INET6:
|
||||
{
|
||||
match(INET6);
|
||||
#line 468 "pf.g"
|
||||
#line 470 "pf.g"
|
||||
|
||||
importer->address_family = LT(0)->getText();
|
||||
|
||||
@ -1314,7 +1314,7 @@ void PFCfgParser::hosts() {
|
||||
case ALL:
|
||||
{
|
||||
match(ALL);
|
||||
#line 511 "pf.g"
|
||||
#line 513 "pf.g"
|
||||
|
||||
importer->src_group.push_back(
|
||||
AddressSpec(AddressSpec::ANY, false, "0.0.0.0", "0.0.0.0"));
|
||||
@ -1475,7 +1475,7 @@ void PFCfgParser::logopts() {
|
||||
for (;;) {
|
||||
if ((LA(1) == COMMA)) {
|
||||
match(COMMA);
|
||||
#line 425 "pf.g"
|
||||
#line 427 "pf.g"
|
||||
importer->logopts += ",";
|
||||
#line 1481 "PFCfgParser.cpp"
|
||||
logopt();
|
||||
@ -1514,7 +1514,7 @@ void PFCfgParser::logopt() {
|
||||
{
|
||||
match(TO);
|
||||
match(WORD);
|
||||
#line 432 "pf.g"
|
||||
#line 434 "pf.g"
|
||||
|
||||
importer->logopts += LT(0)->getText();
|
||||
|
||||
@ -1535,7 +1535,7 @@ void PFCfgParser::logopt() {
|
||||
|
||||
void PFCfgParser::ifspec() {
|
||||
Tracer traceInOut(this, "ifspec");
|
||||
#line 446 "pf.g"
|
||||
#line 448 "pf.g"
|
||||
InterfaceSpec is;
|
||||
#line 1541 "PFCfgParser.cpp"
|
||||
|
||||
@ -1545,7 +1545,7 @@ void PFCfgParser::ifspec() {
|
||||
case EXLAMATION:
|
||||
{
|
||||
match(EXLAMATION);
|
||||
#line 447 "pf.g"
|
||||
#line 449 "pf.g"
|
||||
is.neg = true;
|
||||
#line 1551 "PFCfgParser.cpp"
|
||||
break;
|
||||
@ -1561,7 +1561,7 @@ void PFCfgParser::ifspec() {
|
||||
}
|
||||
}
|
||||
match(WORD);
|
||||
#line 449 "pf.g"
|
||||
#line 451 "pf.g"
|
||||
|
||||
is.name = LT(0)->getText();
|
||||
importer->iface_group.push_back(is);
|
||||
@ -1760,7 +1760,7 @@ void PFCfgParser::proto_name() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 488 "pf.g"
|
||||
#line 490 "pf.g"
|
||||
|
||||
importer->proto_list.push_back(LT(0)->getText());
|
||||
|
||||
@ -1777,7 +1777,7 @@ void PFCfgParser::proto_number() {
|
||||
|
||||
try { // for error handling
|
||||
match(INT_CONST);
|
||||
#line 494 "pf.g"
|
||||
#line 496 "pf.g"
|
||||
|
||||
importer->proto_list.push_back(LT(0)->getText());
|
||||
|
||||
@ -1976,7 +1976,7 @@ void PFCfgParser::src_hosts_part() {
|
||||
case URPF_FAILED:
|
||||
{
|
||||
match(URPF_FAILED);
|
||||
#line 534 "pf.g"
|
||||
#line 536 "pf.g"
|
||||
|
||||
importer->tmp_group.push_back(
|
||||
AddressSpec(AddressSpec::SPECIAL_ADDRESS, false,
|
||||
@ -1991,7 +1991,7 @@ void PFCfgParser::src_hosts_part() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 540 "pf.g"
|
||||
#line 542 "pf.g"
|
||||
|
||||
importer->src_neg = importer->tmp_neg;
|
||||
importer->src_group.splice(importer->src_group.begin(),
|
||||
@ -2033,7 +2033,7 @@ void PFCfgParser::src_port_part() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 858 "pf.g"
|
||||
#line 860 "pf.g"
|
||||
|
||||
importer->src_port_group.splice(importer->src_port_group.begin(),
|
||||
importer->tmp_port_group);
|
||||
@ -2051,7 +2051,7 @@ void PFCfgParser::dst_hosts_part() {
|
||||
|
||||
try { // for error handling
|
||||
common_hosts_part();
|
||||
#line 549 "pf.g"
|
||||
#line 551 "pf.g"
|
||||
|
||||
importer->dst_neg = importer->tmp_neg;
|
||||
importer->dst_group.splice(importer->dst_group.begin(),
|
||||
@ -2093,7 +2093,7 @@ void PFCfgParser::dst_port_part() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 866 "pf.g"
|
||||
#line 868 "pf.g"
|
||||
|
||||
importer->dst_port_group.splice(importer->dst_port_group.begin(),
|
||||
importer->tmp_port_group);
|
||||
@ -2114,7 +2114,7 @@ void PFCfgParser::common_hosts_part() {
|
||||
case ANY:
|
||||
{
|
||||
match(ANY);
|
||||
#line 558 "pf.g"
|
||||
#line 560 "pf.g"
|
||||
|
||||
importer->tmp_group.push_back(
|
||||
AddressSpec(AddressSpec::ANY, false, "0.0.0.0", "0.0.0.0"));
|
||||
@ -2125,7 +2125,7 @@ void PFCfgParser::common_hosts_part() {
|
||||
case NO_ROUTE:
|
||||
{
|
||||
match(NO_ROUTE);
|
||||
#line 564 "pf.g"
|
||||
#line 566 "pf.g"
|
||||
|
||||
importer->tmp_group.push_back(
|
||||
AddressSpec(AddressSpec::SPECIAL_ADDRESS, false, "no-route", ""));
|
||||
@ -2163,7 +2163,7 @@ void PFCfgParser::common_hosts_part() {
|
||||
void PFCfgParser::host() {
|
||||
Tracer traceInOut(this, "host");
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken tn = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
#line 574 "pf.g"
|
||||
#line 576 "pf.g"
|
||||
AddressSpec as;
|
||||
#line 2169 "PFCfgParser.cpp"
|
||||
|
||||
@ -2173,7 +2173,7 @@ void PFCfgParser::host() {
|
||||
case EXLAMATION:
|
||||
{
|
||||
match(EXLAMATION);
|
||||
#line 575 "pf.g"
|
||||
#line 577 "pf.g"
|
||||
as.neg = true;
|
||||
#line 2179 "PFCfgParser.cpp"
|
||||
break;
|
||||
@ -2197,7 +2197,7 @@ void PFCfgParser::host() {
|
||||
case WORD:
|
||||
{
|
||||
match(WORD);
|
||||
#line 578 "pf.g"
|
||||
#line 580 "pf.g"
|
||||
|
||||
// interface name or domain/host name
|
||||
as.at = AddressSpec::INTERFACE_NAME;
|
||||
@ -2214,7 +2214,7 @@ void PFCfgParser::host() {
|
||||
case NETWORK:
|
||||
{
|
||||
match(NETWORK);
|
||||
#line 587 "pf.g"
|
||||
#line 589 "pf.g"
|
||||
|
||||
as.at = AddressSpec::INTERFACE_NETWORK;
|
||||
|
||||
@ -2224,7 +2224,7 @@ void PFCfgParser::host() {
|
||||
case BROADCAST:
|
||||
{
|
||||
match(BROADCAST);
|
||||
#line 592 "pf.g"
|
||||
#line 594 "pf.g"
|
||||
|
||||
as.at = AddressSpec::INTERFACE_BROADCAST;
|
||||
|
||||
@ -2234,7 +2234,7 @@ void PFCfgParser::host() {
|
||||
case PEER:
|
||||
{
|
||||
match(PEER);
|
||||
#line 597 "pf.g"
|
||||
#line 599 "pf.g"
|
||||
|
||||
importer->error_tracker->registerError(
|
||||
QString("import of 'interface:peer' is not supported."));
|
||||
@ -2245,7 +2245,7 @@ void PFCfgParser::host() {
|
||||
case INT_CONST:
|
||||
{
|
||||
match(INT_CONST);
|
||||
#line 603 "pf.g"
|
||||
#line 605 "pf.g"
|
||||
|
||||
importer->error_tracker->registerError(
|
||||
QString("import of 'interface:0' is not supported."));
|
||||
@ -2292,7 +2292,7 @@ void PFCfgParser::host() {
|
||||
case SELF:
|
||||
{
|
||||
match(SELF);
|
||||
#line 611 "pf.g"
|
||||
#line 613 "pf.g"
|
||||
|
||||
as.at = AddressSpec::SPECIAL_ADDRESS;
|
||||
as.address = "self";
|
||||
@ -2303,7 +2303,7 @@ void PFCfgParser::host() {
|
||||
case IPV6:
|
||||
{
|
||||
match(IPV6);
|
||||
#line 617 "pf.g"
|
||||
#line 619 "pf.g"
|
||||
|
||||
importer->addMessageToLog(QString("IPv6 import is not supported. "));
|
||||
consumeUntil(NEWLINE);
|
||||
@ -2314,7 +2314,7 @@ void PFCfgParser::host() {
|
||||
case IPV4:
|
||||
{
|
||||
match(IPV4);
|
||||
#line 623 "pf.g"
|
||||
#line 625 "pf.g"
|
||||
|
||||
as.at = AddressSpec::HOST_ADDRESS;
|
||||
as.address = LT(0)->getText();
|
||||
@ -2325,7 +2325,7 @@ void PFCfgParser::host() {
|
||||
case SLASH:
|
||||
{
|
||||
match(SLASH);
|
||||
#line 629 "pf.g"
|
||||
#line 631 "pf.g"
|
||||
|
||||
as.at = AddressSpec::NETWORK_ADDRESS;
|
||||
|
||||
@ -2348,7 +2348,7 @@ void PFCfgParser::host() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 633 "pf.g"
|
||||
#line 635 "pf.g"
|
||||
|
||||
as.netmask = LT(0)->getText();
|
||||
|
||||
@ -2389,7 +2389,7 @@ void PFCfgParser::host() {
|
||||
tn = LT(1);
|
||||
match(WORD);
|
||||
match(GREATER_THAN);
|
||||
#line 639 "pf.g"
|
||||
#line 641 "pf.g"
|
||||
|
||||
as.at = AddressSpec::TABLE;
|
||||
as.address = tn->getText();
|
||||
@ -2403,7 +2403,7 @@ void PFCfgParser::host() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 644 "pf.g"
|
||||
#line 646 "pf.g"
|
||||
|
||||
importer->tmp_group.push_back(as);
|
||||
|
||||
@ -2465,7 +2465,7 @@ void PFCfgParser::route_to() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 666 "pf.g"
|
||||
#line 668 "pf.g"
|
||||
|
||||
importer->route_type = PFImporter::ROUTE_TO;
|
||||
|
||||
@ -2500,7 +2500,7 @@ void PFCfgParser::reply_to() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 673 "pf.g"
|
||||
#line 675 "pf.g"
|
||||
|
||||
importer->route_type = PFImporter::REPLY_TO;
|
||||
|
||||
@ -2518,14 +2518,14 @@ void PFCfgParser::routehost() {
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken v6 = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken nm = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
ANTLR_USE_NAMESPACE(antlr)RefToken nm6 = ANTLR_USE_NAMESPACE(antlr)nullToken;
|
||||
#line 678 "pf.g"
|
||||
#line 680 "pf.g"
|
||||
RouteSpec rs;
|
||||
#line 2524 "PFCfgParser.cpp"
|
||||
|
||||
try { // for error handling
|
||||
match(OPENING_PAREN);
|
||||
match(WORD);
|
||||
#line 680 "pf.g"
|
||||
#line 682 "pf.g"
|
||||
rs.iface = LT(0)->getText();
|
||||
#line 2531 "PFCfgParser.cpp"
|
||||
{
|
||||
@ -2585,7 +2585,7 @@ void PFCfgParser::routehost() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 682 "pf.g"
|
||||
#line 684 "pf.g"
|
||||
|
||||
if (v6)
|
||||
{
|
||||
@ -2723,7 +2723,7 @@ void PFCfgParser::tcp_flags() {
|
||||
case ANY:
|
||||
{
|
||||
match(ANY);
|
||||
#line 738 "pf.g"
|
||||
#line 740 "pf.g"
|
||||
|
||||
importer->flags_check = "none";
|
||||
importer->flags_mask = "none";
|
||||
@ -2784,7 +2784,7 @@ void PFCfgParser::tcp_flags() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 744 "pf.g"
|
||||
#line 746 "pf.g"
|
||||
|
||||
if (check)
|
||||
importer->flags_check = check->getText();
|
||||
@ -2847,7 +2847,7 @@ void PFCfgParser::icmp6_type() {
|
||||
|
||||
try { // for error handling
|
||||
match(ICMP6_TYPE);
|
||||
#line 798 "pf.g"
|
||||
#line 800 "pf.g"
|
||||
|
||||
importer->addMessageToLog(QString("ICMP6 import is not supported. "));
|
||||
consumeUntil(NEWLINE);
|
||||
@ -2869,7 +2869,7 @@ void PFCfgParser::tagged() {
|
||||
case EXLAMATION:
|
||||
{
|
||||
match(EXLAMATION);
|
||||
#line 805 "pf.g"
|
||||
#line 807 "pf.g"
|
||||
importer->tagged_neg = true;
|
||||
#line 2875 "PFCfgParser.cpp"
|
||||
break;
|
||||
@ -2886,7 +2886,7 @@ void PFCfgParser::tagged() {
|
||||
}
|
||||
match(TAGGED);
|
||||
match(WORD);
|
||||
#line 807 "pf.g"
|
||||
#line 809 "pf.g"
|
||||
|
||||
importer->tagged = LT(0)->getText();
|
||||
|
||||
@ -2904,7 +2904,7 @@ void PFCfgParser::tag_clause() {
|
||||
try { // for error handling
|
||||
match(TAG);
|
||||
match(WORD);
|
||||
#line 814 "pf.g"
|
||||
#line 816 "pf.g"
|
||||
|
||||
importer->tag = LT(0)->getText();
|
||||
|
||||
@ -2948,7 +2948,7 @@ void PFCfgParser::state() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 829 "pf.g"
|
||||
#line 831 "pf.g"
|
||||
|
||||
importer->state_op = LT(0)->getText();
|
||||
|
||||
@ -2971,7 +2971,7 @@ void PFCfgParser::queue() {
|
||||
case WORD:
|
||||
{
|
||||
match(WORD);
|
||||
#line 838 "pf.g"
|
||||
#line 840 "pf.g"
|
||||
importer->queue += LT(0)->getText();
|
||||
#line 2977 "PFCfgParser.cpp"
|
||||
break;
|
||||
@ -2980,18 +2980,18 @@ void PFCfgParser::queue() {
|
||||
{
|
||||
match(OPENING_PAREN);
|
||||
match(WORD);
|
||||
#line 841 "pf.g"
|
||||
#line 843 "pf.g"
|
||||
importer->queue += LT(0)->getText();
|
||||
#line 2986 "PFCfgParser.cpp"
|
||||
{ // ( ... )*
|
||||
for (;;) {
|
||||
if ((LA(1) == COMMA)) {
|
||||
match(COMMA);
|
||||
#line 843 "pf.g"
|
||||
#line 845 "pf.g"
|
||||
importer->queue += ",";
|
||||
#line 2993 "PFCfgParser.cpp"
|
||||
match(WORD);
|
||||
#line 844 "pf.g"
|
||||
#line 846 "pf.g"
|
||||
importer->queue += LT(0)->getText();
|
||||
#line 2997 "PFCfgParser.cpp"
|
||||
}
|
||||
@ -3033,7 +3033,7 @@ void PFCfgParser::label() {
|
||||
|
||||
void PFCfgParser::icmp_type_code() {
|
||||
Tracer traceInOut(this, "icmp_type_code");
|
||||
#line 766 "pf.g"
|
||||
#line 768 "pf.g"
|
||||
IcmpSpec is;
|
||||
#line 3039 "PFCfgParser.cpp"
|
||||
|
||||
@ -3043,7 +3043,7 @@ void PFCfgParser::icmp_type_code() {
|
||||
case WORD:
|
||||
{
|
||||
match(WORD);
|
||||
#line 768 "pf.g"
|
||||
#line 770 "pf.g"
|
||||
is.icmp_type_name = LT(0)->getText();
|
||||
#line 3049 "PFCfgParser.cpp"
|
||||
break;
|
||||
@ -3051,7 +3051,7 @@ void PFCfgParser::icmp_type_code() {
|
||||
case INT_CONST:
|
||||
{
|
||||
match(INT_CONST);
|
||||
#line 770 "pf.g"
|
||||
#line 772 "pf.g"
|
||||
is.icmp_type_int = LT(0)->getText();
|
||||
#line 3057 "PFCfgParser.cpp"
|
||||
break;
|
||||
@ -3072,7 +3072,7 @@ void PFCfgParser::icmp_type_code() {
|
||||
case WORD:
|
||||
{
|
||||
match(WORD);
|
||||
#line 775 "pf.g"
|
||||
#line 777 "pf.g"
|
||||
is.icmp_code_name = LT(0)->getText();
|
||||
#line 3078 "PFCfgParser.cpp"
|
||||
break;
|
||||
@ -3080,7 +3080,7 @@ void PFCfgParser::icmp_type_code() {
|
||||
case INT_CONST:
|
||||
{
|
||||
match(INT_CONST);
|
||||
#line 777 "pf.g"
|
||||
#line 779 "pf.g"
|
||||
is.icmp_code_int = LT(0)->getText();
|
||||
#line 3086 "PFCfgParser.cpp"
|
||||
break;
|
||||
@ -3119,7 +3119,7 @@ void PFCfgParser::icmp_type_code() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 780 "pf.g"
|
||||
#line 782 "pf.g"
|
||||
|
||||
importer->icmp_type_code_group.push_back(is);
|
||||
|
||||
@ -3177,7 +3177,7 @@ void PFCfgParser::icmp_list() {
|
||||
|
||||
void PFCfgParser::port_op() {
|
||||
Tracer traceInOut(this, "port_op");
|
||||
#line 898 "pf.g"
|
||||
#line 900 "pf.g"
|
||||
PortSpec ps;
|
||||
#line 3183 "PFCfgParser.cpp"
|
||||
|
||||
@ -3190,11 +3190,11 @@ void PFCfgParser::port_op() {
|
||||
case EXLAMATION:
|
||||
{
|
||||
unary_port_op();
|
||||
#line 900 "pf.g"
|
||||
#line 902 "pf.g"
|
||||
ps.port_op = importer->tmp_port_op;
|
||||
#line 3196 "PFCfgParser.cpp"
|
||||
port_def();
|
||||
#line 902 "pf.g"
|
||||
#line 904 "pf.g"
|
||||
|
||||
ps.port1 = importer->tmp_port_def;
|
||||
ps.port2 = importer->tmp_port_def;
|
||||
@ -3206,7 +3206,7 @@ void PFCfgParser::port_op() {
|
||||
case INT_CONST:
|
||||
{
|
||||
port_def();
|
||||
#line 908 "pf.g"
|
||||
#line 910 "pf.g"
|
||||
|
||||
ps.port1 = importer->tmp_port_def;
|
||||
ps.port2 = ps.port1;
|
||||
@ -3216,11 +3216,11 @@ void PFCfgParser::port_op() {
|
||||
{
|
||||
if ((LA(1) == LESS_THAN || LA(1) == GREATER_THAN || LA(1) == COLON) && (_tokenSet_33.member(LA(2)))) {
|
||||
binary_port_op();
|
||||
#line 914 "pf.g"
|
||||
#line 916 "pf.g"
|
||||
ps.port_op = importer->tmp_port_op;
|
||||
#line 3222 "PFCfgParser.cpp"
|
||||
port_def();
|
||||
#line 915 "pf.g"
|
||||
#line 917 "pf.g"
|
||||
ps.port2 = LT(0)->getText();
|
||||
#line 3226 "PFCfgParser.cpp"
|
||||
}
|
||||
@ -3239,7 +3239,7 @@ void PFCfgParser::port_op() {
|
||||
}
|
||||
}
|
||||
}
|
||||
#line 918 "pf.g"
|
||||
#line 920 "pf.g"
|
||||
|
||||
importer->tmp_port_group.push_back(ps);
|
||||
|
||||
@ -3308,7 +3308,7 @@ void PFCfgParser::unary_port_op() {
|
||||
case EQUAL:
|
||||
{
|
||||
match(EQUAL);
|
||||
#line 874 "pf.g"
|
||||
#line 876 "pf.g"
|
||||
importer->tmp_port_op = "=";
|
||||
#line 3314 "PFCfgParser.cpp"
|
||||
break;
|
||||
@ -3317,7 +3317,7 @@ void PFCfgParser::unary_port_op() {
|
||||
{
|
||||
match(EXLAMATION);
|
||||
match(EQUAL);
|
||||
#line 876 "pf.g"
|
||||
#line 878 "pf.g"
|
||||
importer->tmp_port_op = "!=";
|
||||
#line 3323 "PFCfgParser.cpp"
|
||||
break;
|
||||
@ -3325,27 +3325,27 @@ void PFCfgParser::unary_port_op() {
|
||||
default:
|
||||
if ((LA(1) == LESS_THAN) && (LA(2) == WORD || LA(2) == INT_CONST)) {
|
||||
match(LESS_THAN);
|
||||
#line 878 "pf.g"
|
||||
#line 880 "pf.g"
|
||||
importer->tmp_port_op = "<";
|
||||
#line 3331 "PFCfgParser.cpp"
|
||||
}
|
||||
else if ((LA(1) == LESS_THAN) && (LA(2) == EQUAL)) {
|
||||
match(LESS_THAN);
|
||||
match(EQUAL);
|
||||
#line 880 "pf.g"
|
||||
#line 882 "pf.g"
|
||||
importer->tmp_port_op = "<=";
|
||||
#line 3338 "PFCfgParser.cpp"
|
||||
}
|
||||
else if ((LA(1) == GREATER_THAN) && (LA(2) == WORD || LA(2) == INT_CONST)) {
|
||||
match(GREATER_THAN);
|
||||
#line 882 "pf.g"
|
||||
#line 884 "pf.g"
|
||||
importer->tmp_port_op = ">";
|
||||
#line 3344 "PFCfgParser.cpp"
|
||||
}
|
||||
else if ((LA(1) == GREATER_THAN) && (LA(2) == EQUAL)) {
|
||||
match(GREATER_THAN);
|
||||
match(EQUAL);
|
||||
#line 884 "pf.g"
|
||||
#line 886 "pf.g"
|
||||
importer->tmp_port_op = ">=";
|
||||
#line 3351 "PFCfgParser.cpp"
|
||||
}
|
||||
@ -3371,7 +3371,7 @@ void PFCfgParser::binary_port_op() {
|
||||
{
|
||||
match(LESS_THAN);
|
||||
match(GREATER_THAN);
|
||||
#line 890 "pf.g"
|
||||
#line 892 "pf.g"
|
||||
importer->tmp_port_op = "<>";
|
||||
#line 3377 "PFCfgParser.cpp"
|
||||
break;
|
||||
@ -3380,7 +3380,7 @@ void PFCfgParser::binary_port_op() {
|
||||
{
|
||||
match(GREATER_THAN);
|
||||
match(LESS_THAN);
|
||||
#line 892 "pf.g"
|
||||
#line 894 "pf.g"
|
||||
importer->tmp_port_op = "><";
|
||||
#line 3386 "PFCfgParser.cpp"
|
||||
break;
|
||||
@ -3388,7 +3388,7 @@ void PFCfgParser::binary_port_op() {
|
||||
case COLON:
|
||||
{
|
||||
match(COLON);
|
||||
#line 894 "pf.g"
|
||||
#line 896 "pf.g"
|
||||
importer->tmp_port_op = ":";
|
||||
#line 3394 "PFCfgParser.cpp"
|
||||
break;
|
||||
@ -3419,7 +3419,7 @@ void PFCfgParser::port_def() {
|
||||
case INT_CONST:
|
||||
{
|
||||
match(INT_CONST);
|
||||
#line 925 "pf.g"
|
||||
#line 927 "pf.g"
|
||||
|
||||
importer->tmp_port_def = LT(0)->getText();
|
||||
|
||||
|
||||
@ -373,10 +373,11 @@ pass_command : PASS
|
||||
importer->action = "pass";
|
||||
*dbg << LT(1)->getLine() << ":" << " pass ";
|
||||
}
|
||||
rule_extended NEWLINE
|
||||
rule_extended
|
||||
{
|
||||
importer->pushRule();
|
||||
}
|
||||
NEWLINE
|
||||
;
|
||||
|
||||
block_command : BLOCK
|
||||
@ -387,10 +388,11 @@ block_command : BLOCK
|
||||
importer->action = "block";
|
||||
*dbg << LT(1)->getLine() << ":" << " block ";
|
||||
}
|
||||
rule_extended NEWLINE
|
||||
rule_extended
|
||||
{
|
||||
importer->pushRule();
|
||||
}
|
||||
NEWLINE
|
||||
;
|
||||
|
||||
rule_extended :
|
||||
|
||||
@ -7,3 +7,6 @@ pass in quick proto tcp from any to self port = 22 keep state label "keep state"
|
||||
pass in quick proto tcp from any to self port = 22 no state label "no state"
|
||||
|
||||
# add modulate state , synproxy and other state-related variants here
|
||||
pass out proto tcp from any to any modulate state
|
||||
pass in proto tcp from any to any port 25 flags S/SFRA modulate state
|
||||
pass in proto tcp from any to any port 80 synproxy state
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user