diff --git a/doc/ChangeLog b/doc/ChangeLog index 49d35116f..57494dd82 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,8 @@ +2011-03-30 vadim + + * PIXImporterNat.cpp (buildDNATRule): import of PIX/ASA "static" + commands works for the most part. Needs more testing. + 2011-03-28 vadim * ObjectManipulator.cpp (getDeleteMenuState): see #2226 fixed GUI diff --git a/src/import/Importer.cpp b/src/import/Importer.cpp index 7398a65cf..c575ef1d6 100644 --- a/src/import/Importer.cpp +++ b/src/import/Importer.cpp @@ -490,6 +490,8 @@ void Importer::setDefaultAction(const std::string &iptables_action_name) void Importer::newPolicyRule() { + if (fwbdebug) qDebug() << "Importer::newPolicyRule()"; + FWObjectDatabase *dbroot = getFirewallObject()->getRoot(); FWObject *nobj = dbroot->create(PolicyRule::TYPENAME); current_rule = Rule::cast(nobj); @@ -502,9 +504,13 @@ void Importer::newPolicyRule() void Importer::newNATRule() { + if (fwbdebug) qDebug() << "Importer::newNATRule()"; + FWObjectDatabase *dbroot = getFirewallObject()->getRoot(); FWObject *nobj = dbroot->create(NATRule::TYPENAME); current_rule = Rule::cast(nobj); + + if (fwbdebug) qDebug() << "current_rule=" << current_rule; } void Importer::pushRule() @@ -533,6 +539,8 @@ void Importer::pushRule() ropt->setBool("stateless", true); } + rule->setDirection(PolicyRule::Both); + addSrc(); addDst(); addSrv(); diff --git a/src/import/PIXImporter.cpp b/src/import/PIXImporter.cpp index ea4df2d0a..6caed3bdc 100644 --- a/src/import/PIXImporter.cpp +++ b/src/import/PIXImporter.cpp @@ -132,19 +132,27 @@ void PIXImporter::clearTempVars() Importer::clear(); } +Interface* PIXImporter::getInterfaceByLabel(const string &label) +{ + map::iterator it; + for (it=all_interfaces.begin(); it!=all_interfaces.end(); ++it) + { + Interface *intf = it->second; + if (intf->getLabel() == label) + { + return intf; + } + } + return NULL; +} + + FWObject* PIXImporter::makeSrcObj() { if (src_nm == "interface") { - map::iterator it; - for (it=all_interfaces.begin(); it!=all_interfaces.end(); ++it) - { - Interface *intf = it->second; - if (intf->getLabel() == src_a) - { - return intf; - } - } + Interface *intf = getInterfaceByLabel(src_a); + if (intf) return intf; throw ImporterException( QString("Cannot find interface with label '%1'").arg(src_a.c_str())); } @@ -160,15 +168,8 @@ FWObject* PIXImporter::makeDstObj() { if (dst_nm == "interface") { - map::iterator it; - for (it=all_interfaces.begin(); it!=all_interfaces.end(); ++it) - { - Interface *intf = it->second; - if (intf->getLabel() == dst_a) - { - return intf; - } - } + Interface *intf = getInterfaceByLabel(dst_a); + if (intf) return intf; throw ImporterException( QString("Cannot find interface with label '%1'").arg(dst_a.c_str())); } @@ -378,6 +379,9 @@ Firewall* PIXImporter::finalize() FWObject *policy = getFirewallObject()->getFirstByType(Policy::TYPENAME); assert( policy!=NULL ); + FWObject *nat = getFirewallObject()->getFirstByType(NAT::TYPENAME); + assert( nat!=NULL ); + if (all_rulesets.size()!=0) { if (fwbdebug) @@ -400,7 +404,10 @@ Firewall* PIXImporter::finalize() list::iterator it; for (it=ruleset_names.begin(); it!=ruleset_names.end(); ++it) { - UnidirectionalRuleSet *irs = all_rulesets[*it]; + string ruleset_name = *it; + if (ruleset_name == "nat") continue; + + UnidirectionalRuleSet *irs = all_rulesets[ruleset_name]; if (fwbdebug) { @@ -531,6 +538,23 @@ Firewall* PIXImporter::finalize() rs->renumberRules(); } + // Deal with NAT ruleset + UnidirectionalRuleSet *nat_rs = all_rulesets["nat"]; + if (nat_rs) + { + while (nat_rs->ruleset->size() > 0) + { + FWObject *r = nat_rs->ruleset->front(); + nat->reparent(r); + } + + NAT::cast(nat)->renumberRules(); + + nat_rs->ruleset->clearChildren(false); + getFirewallObject()->remove(nat_rs->ruleset, false); + delete nat_rs->ruleset; + } + return fw; } else diff --git a/src/import/PIXImporter.h b/src/import/PIXImporter.h index 1be1ec657..b681411df 100644 --- a/src/import/PIXImporter.h +++ b/src/import/PIXImporter.h @@ -93,6 +93,9 @@ class PIXImporter : public IOSImporter void pushPolicyRule(); void pushNATRule(); + void buildDNATRule(); + void buildSNATRule(); + virtual void pushRule(); // this method actually adds interfaces to the firewall object @@ -155,7 +158,8 @@ class PIXImporter : public IOSImporter void addTCPUDPServiceToObjectGroup(); void addICMPServiceToObjectGroup(); - + libfwbuilder::Interface* getInterfaceByLabel(const std::string &label); + void rearrangeVlanInterfaces(); }; diff --git a/src/import/PIXImporterNat.cpp b/src/import/PIXImporterNat.cpp index cf5e9aefd..82294f673 100644 --- a/src/import/PIXImporterNat.cpp +++ b/src/import/PIXImporterNat.cpp @@ -43,7 +43,7 @@ #include "fwbuilder/ICMPService.h" #include "fwbuilder/TCPService.h" #include "fwbuilder/UDPService.h" -#include "fwbuilder/Policy.h" +#include "fwbuilder/NAT.h" #include "fwbuilder/RuleElement.h" #include "fwbuilder/Library.h" @@ -54,9 +54,173 @@ extern int fwbdebug; +using namespace libfwbuilder; +using namespace std; +/* + + Variables used to build nat rules + + libfwbuilder::NATRule::NATRuleTypes rule_type; + std::string prenat_interface; + std::string postnat_interface; + + std::string real_a; + std::string real_nm; + std::string mapped_a; + std::string mapped_nm; + std::string real_addr_acl; + std::string mapped_port_spec; + std::string real_port_spec; + std::string static_max_conn; + std::string static_max_emb_conn; + + std::string nat_num; + std::string nat_a; + std::string nat_nm; + std::string nat_acl; + + std::string global_pool_num; + std::string global_interface; +*/ void PIXImporter::pushNATRule() +{ + assert(current_ruleset!=NULL); + assert(current_rule!=NULL); + + NATRule *rule = NATRule::cast(current_rule); + + switch (rule_type) + { + case NATRule::DNAT: + buildDNATRule(); + break; + + case NATRule::SNAT: + buildSNATRule(); + break; + + default: + assert(rule_type!=NATRule::DNAT && rule_type!=NATRule::SNAT); + } + + // then add it to the current ruleset + current_ruleset->ruleset->add(current_rule); + + addStandardImportComment(current_rule, QString::fromUtf8(rule_comment.c_str())); + + current_rule = NULL; + rule_comment = ""; + + clear(); +} + +/* + * DNAT rule. + * + * Using real_a, real_nm, mapped_a, mapped_nm, real_addr_acl, + * real_port_spec, mapped_port_spec, prenat_interface, + * postnat_interface + */ +void PIXImporter::buildDNATRule() +{ + NATRule *rule = NATRule::cast(current_rule); + + Interface *pre_intf = getInterfaceByLabel(prenat_interface); + Interface *post_intf = getInterfaceByLabel(postnat_interface); + + rule->setAction(NATRule::Translate); + + if (real_nm.empty()) real_nm = InetAddr::getAllOnes().toString(); + if (mapped_nm.empty()) mapped_nm = InetAddr::getAllOnes().toString(); + + if ( ! mapped_a.empty()) + { + if (mapped_a == "interface") + { + RuleElementODst* odst = rule->getODst(); + assert(odst!=NULL); + odst->addRef(post_intf); + } else + { + dst_a = mapped_a; + dst_nm = mapped_nm; + addODst(); + } + } + + if ( ! real_a.empty()) + { + dst_a = real_a; + dst_nm = real_nm; + + RuleElement* tdst = rule->getTDst(); + assert(tdst!=NULL); + FWObject *s = makeDstObj(); + if (s) tdst->addRef( s ); + } + + if ( ! real_addr_acl.empty()) + { + UnidirectionalRuleSet *rs = all_rulesets[real_addr_acl]; + if (rs) + { + RuleElement* tdst = rule->getTDst(); + assert(tdst!=NULL); + + PolicyRule *policy_rule = PolicyRule::cast( + rs->ruleset->getFirstByType(PolicyRule::TYPENAME)); + + if (policy_rule) + { + RuleElement *src = policy_rule->getSrc(); + for (FWObject::iterator it=src->begin(); it!=src->end(); ++it) + { + FWObject *o = FWReference::getObject(*it); + tdst->addRef(o); + } + } + } + } + + if ( ! mapped_port_spec.empty()) + { + src_port_spec = ""; + dst_port_op = "eq"; + dst_port_spec = mapped_port_spec; + + RuleElement* osrv = rule->getOSrv(); + assert(osrv!=NULL); + FWObject *s = Importer::makeSrvObj(); + + if (s) osrv->addRef( s ); + } + + if ( ! real_port_spec.empty()) + { + src_port_spec = ""; + dst_port_op = "eq"; + dst_port_spec = real_port_spec; + + RuleElement* tsrv = rule->getTSrv(); + assert(tsrv!=NULL); + FWObject *s = Importer::makeSrvObj(); + + if (s) tsrv->addRef( s ); + } + + RuleElement *itf_i_re = rule->getItfInb(); + assert(itf_i_re!=NULL); + itf_i_re->addRef(post_intf); + + RuleElement *itf_o_re = rule->getItfOutb(); + assert(itf_o_re!=NULL); + itf_o_re->addRef(pre_intf); +} + +void PIXImporter::buildSNATRule() { } + diff --git a/src/parsers/PIXCfgLexer.cpp b/src/parsers/PIXCfgLexer.cpp index b03ca6057..b2a90c411 100644 --- a/src/parsers/PIXCfgLexer.cpp +++ b/src/parsers/PIXCfgLexer.cpp @@ -44,137 +44,141 @@ PIXCfgLexer::PIXCfgLexer(const ANTLR_USE_NAMESPACE(antlr)LexerSharedInputState& void PIXCfgLexer::initLiterals() { - literals["full"] = 119; - literals["parameter-problem"] = 85; + literals["full"] = 120; + literals["parameter-problem"] = 86; literals["port-object"] = 53; - literals["notifications"] = 105; - literals["duplex"] = 125; - literals["no"] = 55; - literals["static"] = 147; + literals["notifications"] = 106; + literals["duplex"] = 126; + literals["dns"] = 55; + literals["no"] = 56; + literals["static"] = 148; literals["esp"] = 16; - literals["time-range"] = 111; + literals["time-range"] = 112; literals["gre"] = 17; - literals["timestamp-request"] = 92; - literals["echo"] = 72; - literals["speed"] = 124; - literals["warnings"] = 106; + literals["timestamp-request"] = 93; + literals["echo"] = 73; + literals["speed"] = 125; + literals["warnings"] = 107; literals["timeout"] = 8; literals["eigrp"] = 15; literals["icmp-type"] = 50; - literals["permit"] = 65; - literals["remark"] = 141; + literals["permit"] = 66; + literals["remark"] = 143; literals["network"] = 29; literals["igmp"] = 18; literals["range"] = 34; literals["destination"] = 43; - literals["setroute"] = 152; - literals["vlan"] = 123; - literals["debugging"] = 101; - literals["controller"] = 112; - literals["interface"] = 95; - literals["dhcp"] = 137; - literals["aui"] = 116; - literals["Version"] = 59; - literals["auto"] = 117; + literals["setroute"] = 153; + literals["vlan"] = 124; + literals["debugging"] = 102; + literals["controller"] = 113; + literals["interface"] = 96; + literals["dhcp"] = 138; + literals["aui"] = 117; + literals["Version"] = 60; + literals["auto"] = 118; literals["subnet"] = 35; - literals["time-exceeded"] = 90; - literals["outside"] = 113; - literals["shutdown"] = 135; + literals["time-exceeded"] = 91; + literals["outside"] = 114; + literals["shutdown"] = 136; literals["group-object"] = 45; - literals["eq"] = 68; - literals["fragments"] = 110; - literals["unreachable"] = 94; - literals["delay"] = 128; + literals["eq"] = 69; + literals["fragments"] = 111; + literals["unreachable"] = 95; + literals["norandomseq"] = 150; + literals["delay"] = 129; literals["ip"] = 6; - literals["security-level"] = 134; - literals["mobile-redirect"] = 84; + literals["security-level"] = 135; + literals["mobile-redirect"] = 85; literals["ospf"] = 23; literals["name"] = 10; - literals["errors"] = 103; - literals["mask-request"] = 83; - literals["PIX"] = 57; - literals["any"] = 96; - literals["ASA"] = 58; + literals["errors"] = 104; + literals["mask-request"] = 84; + literals["PIX"] = 58; + literals["any"] = 97; + literals["ASA"] = 59; literals["pptp"] = 26; - literals["redirect"] = 86; - literals["forward"] = 127; + literals["redirect"] = 87; + literals["forward"] = 128; literals["description"] = 32; - literals["timestamp-reply"] = 91; - literals["alerts"] = 99; - literals["lt"] = 70; - literals["bnc"] = 118; - literals["global"] = 146; + literals["timestamp-reply"] = 92; + literals["alerts"] = 100; + literals["netmask"] = 151; + literals["lt"] = 71; + literals["bnc"] = 119; + literals["global"] = 147; literals["nos"] = 22; - literals["extended"] = 64; - literals["certificate"] = 56; + literals["extended"] = 65; + literals["certificate"] = 57; literals["service"] = 36; - literals["telnet"] = 75; + literals["telnet"] = 76; literals["udp"] = 41; - literals["hold-time"] = 129; - literals["baseT"] = 120; + literals["hold-time"] = 130; + literals["baseT"] = 121; literals["ipinip"] = 20; - literals["standby"] = 138; + literals["standby"] = 139; literals["crypto"] = 54; literals["pim"] = 25; - literals["secondary"] = 151; - literals["emergencies"] = 102; - literals["disable"] = 107; - literals["mask-reply"] = 82; + literals["secondary"] = 152; + literals["emergencies"] = 103; + literals["disable"] = 108; + literals["mask-reply"] = 83; literals["tcp"] = 40; literals["tcp-udp"] = 51; literals["source"] = 42; literals["names"] = 9; literals["icmp"] = 37; - literals["log"] = 97; + literals["log"] = 98; literals["snp"] = 27; - literals["mac-address"] = 131; - literals["established"] = 76; - literals["deny"] = 66; - literals["information-request"] = 81; - literals["ssh"] = 74; + literals["mac-address"] = 132; + literals["established"] = 77; + literals["deny"] = 67; + literals["information-request"] = 82; + literals["ssh"] = 75; literals["protocol-object"] = 48; - literals["gt"] = 69; + literals["gt"] = 70; literals["ah"] = 14; - literals["interval"] = 109; - literals["ddns"] = 126; - literals["ipv6"] = 130; - literals["rip"] = 73; - literals["baseTX"] = 121; - literals["access-group"] = 142; - literals["critical"] = 100; - literals["standard"] = 67; + literals["interval"] = 110; + literals["ddns"] = 127; + literals["ipv6"] = 131; + literals["rip"] = 74; + literals["baseTX"] = 122; + literals["access-group"] = 144; + literals["critical"] = 101; + literals["standard"] = 68; literals["quit"] = 5; literals["community-list"] = 7; literals["network-object"] = 46; - literals["hostname"] = 61; - literals["information-reply"] = 80; + literals["hostname"] = 62; + literals["information-reply"] = 81; literals["icmp6"] = 39; - literals["switchport"] = 139; + literals["switchport"] = 140; literals["ipsec"] = 21; - literals["conversion-error"] = 78; + literals["conversion-error"] = 79; literals["host"] = 33; - literals["echo-reply"] = 79; - literals["nameif"] = 122; + literals["echo-reply"] = 80; + literals["nameif"] = 123; literals["pcp"] = 24; literals["service-object"] = 52; literals["nat"] = 30; - literals["access-list"] = 63; - literals["informational"] = 104; + literals["access-list"] = 64; + literals["informational"] = 105; literals["igrp"] = 19; - literals["traceroute"] = 93; - literals["address"] = 136; - literals["log-input"] = 98; - literals["router-advertisement"] = 87; - literals["router-solicitation"] = 88; - literals["access"] = 140; + literals["traceroute"] = 94; + literals["address"] = 137; + literals["log-input"] = 99; + literals["router-advertisement"] = 88; + literals["router-solicitation"] = 89; + literals["access"] = 141; literals["icmp-object"] = 49; - literals["source-quench"] = 89; + literals["source-quench"] = 90; + literals["scopy"] = 142; literals["protocol"] = 47; - literals["inactive"] = 108; - literals["multicast"] = 132; - literals["exit"] = 115; - literals["neq"] = 71; - literals["alternate-address"] = 77; + literals["inactive"] = 109; + literals["multicast"] = 133; + literals["exit"] = 116; + literals["neq"] = 72; + literals["alternate-address"] = 78; } ANTLR_USE_NAMESPACE(antlr)RefToken PIXCfgLexer::nextToken() @@ -488,11 +492,11 @@ void PIXCfgLexer::mLINE_COMMENT(bool _createToken) { } } else { - goto _loop263; + goto _loop268; } } - _loop263:; + _loop268:; } // ( ... )* mNEWLINE(false); if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { @@ -524,9 +528,9 @@ void PIXCfgLexer::mNEWLINE(bool _createToken) { } if ( inputState->guessing==0 ) { -#line 2228 "pix.g" +#line 2266 "pix.g" newline(); -#line 530 "PIXCfgLexer.cpp" +#line 534 "PIXCfgLexer.cpp" } if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { _token = makeToken(_ttype); @@ -550,11 +554,11 @@ void PIXCfgLexer::mCOLON_COMMENT(bool _createToken) { } } else { - goto _loop267; + goto _loop272; } } - _loop267:; + _loop272:; } // ( ... )* mNEWLINE(false); if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { @@ -648,9 +652,9 @@ void PIXCfgLexer::mWhitespace(bool _createToken) { } } if ( inputState->guessing==0 ) { -#line 2223 "pix.g" +#line 2261 "pix.g" _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP; -#line 654 "PIXCfgLexer.cpp" +#line 658 "PIXCfgLexer.cpp" } if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { _token = makeToken(_ttype); @@ -772,10 +776,10 @@ void PIXCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) { ANTLR_USE_NAMESPACE(std)string::size_type _saveIndex; { - bool synPredMatched328 = false; + bool synPredMatched333 = false; if (((LA(1) == 0x6f /* 'o' */ ) && (LA(2) == 0x62 /* 'b' */ ) && (LA(3) == 0x6a /* 'j' */ ))) { - int _m328 = mark(); - synPredMatched328 = true; + int _m333 = mark(); + synPredMatched333 = true; inputState->guessing++; try { { @@ -784,12 +788,12 @@ void PIXCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) { } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { - synPredMatched328 = false; + synPredMatched333 = false; } - rewind(_m328); + rewind(_m333); inputState->guessing--; } - if ( synPredMatched328 ) { + if ( synPredMatched333 ) { { match("object"); { @@ -799,17 +803,17 @@ void PIXCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) { match("oup"); } if ( inputState->guessing==0 ) { -#line 2280 "pix.g" +#line 2318 "pix.g" _ttype = OBJECT_GROUP; -#line 805 "PIXCfgLexer.cpp" +#line 809 "PIXCfgLexer.cpp" } } else { match(""); if ( inputState->guessing==0 ) { -#line 2282 "pix.g" +#line 2320 "pix.g" _ttype = OBJECT; -#line 813 "PIXCfgLexer.cpp" +#line 817 "PIXCfgLexer.cpp" } } @@ -817,15 +821,15 @@ void PIXCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) { } } else { - bool synPredMatched318 = false; + bool synPredMatched323 = false; if (((_tokenSet_2.member(LA(1))) && (_tokenSet_3.member(LA(2))) && (true))) { - int _m318 = mark(); - synPredMatched318 = true; + int _m323 = mark(); + synPredMatched323 = true; inputState->guessing++; try { { { // ( ... )+ - int _cnt317=0; + int _cnt322=0; for (;;) { switch ( LA(1)) { case 0x61 /* 'a' */ : @@ -854,27 +858,27 @@ void PIXCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) { } default: { - if ( _cnt317>=1 ) { goto _loop317; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} + if ( _cnt322>=1 ) { goto _loop322; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} } } - _cnt317++; + _cnt322++; } - _loop317:; + _loop322:; } // ( ... )+ mCOLON(false); } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { - synPredMatched318 = false; + synPredMatched323 = false; } - rewind(_m318); + rewind(_m323); inputState->guessing--; } - if ( synPredMatched318 ) { + if ( synPredMatched323 ) { { { { // ( ... )+ - int _cnt322=0; + int _cnt327=0; for (;;) { switch ( LA(1)) { case 0x61 /* 'a' */ : @@ -903,15 +907,15 @@ void PIXCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) { } default: { - if ( _cnt322>=1 ) { goto _loop322; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} + if ( _cnt327>=1 ) { goto _loop327; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} } } - _cnt322++; + _cnt327++; } - _loop322:; + _loop327:; } // ( ... )+ { // ( ... )+ - int _cnt326=0; + int _cnt331=0; for (;;) { if ((LA(1) == 0x3a /* ':' */ )) { mCOLON(false); @@ -944,34 +948,34 @@ void PIXCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) { } default: { - goto _loop325; + goto _loop330; } } } - _loop325:; + _loop330:; } // ( ... )* } else { - if ( _cnt326>=1 ) { goto _loop326; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} + if ( _cnt331>=1 ) { goto _loop331; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} } - _cnt326++; + _cnt331++; } - _loop326:; + _loop331:; } // ( ... )+ } if ( inputState->guessing==0 ) { -#line 2273 "pix.g" +#line 2311 "pix.g" _ttype = IPV6; -#line 967 "PIXCfgLexer.cpp" +#line 971 "PIXCfgLexer.cpp" } } } else { - bool synPredMatched283 = false; + bool synPredMatched288 = false; if ((((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (true) && (true))) { - int _m283 = mark(); - synPredMatched283 = true; + int _m288 = mark(); + synPredMatched288 = true; inputState->guessing++; try { { @@ -979,242 +983,242 @@ void PIXCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) { } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { - synPredMatched283 = false; + synPredMatched288 = false; } - rewind(_m283); + rewind(_m288); inputState->guessing--; } - if ( synPredMatched283 ) { + if ( synPredMatched288 ) { { - bool synPredMatched292 = false; + bool synPredMatched297 = false; if ((((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_4.member(LA(2))) && (_tokenSet_4.member(LA(3))))) { - int _m292 = mark(); - synPredMatched292 = true; + int _m297 = mark(); + synPredMatched297 = true; inputState->guessing++; try { { { // ( ... )+ - int _cnt287=0; + int _cnt292=0; for (;;) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { mDIGIT(false); } else { - if ( _cnt287>=1 ) { goto _loop287; } 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());} } - _cnt287++; + _cnt292++; } - _loop287:; + _loop292:; } // ( ... )+ mDOT(false); { // ( ... )+ - int _cnt289=0; + int _cnt294=0; for (;;) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { mDIGIT(false); } else { - if ( _cnt289>=1 ) { goto _loop289; } 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());} } - _cnt289++; + _cnt294++; } - _loop289:; + _loop294:; } // ( ... )+ mDOT(false); { // ( ... )+ - int _cnt291=0; + int _cnt296=0; for (;;) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { mDIGIT(false); } else { - if ( _cnt291>=1 ) { goto _loop291; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} + if ( _cnt296>=1 ) { goto _loop296; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} } - _cnt291++; + _cnt296++; } - _loop291:; + _loop296:; } // ( ... )+ } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { - synPredMatched292 = false; + synPredMatched297 = false; } - rewind(_m292); + rewind(_m297); inputState->guessing--; } - if ( synPredMatched292 ) { + if ( synPredMatched297 ) { { { // ( ... )+ - int _cnt295=0; + int _cnt300=0; for (;;) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { mDIGIT(false); } else { - if ( _cnt295>=1 ) { goto _loop295; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} + if ( _cnt300>=1 ) { goto _loop300; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} } - _cnt295++; + _cnt300++; } - _loop295:; + _loop300:; } // ( ... )+ mDOT(false); { // ( ... )+ - int _cnt297=0; + int _cnt302=0; for (;;) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { mDIGIT(false); } else { - if ( _cnt297>=1 ) { goto _loop297; } 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());} } - _cnt297++; + _cnt302++; } - _loop297:; + _loop302:; } // ( ... )+ mDOT(false); { // ( ... )+ - int _cnt299=0; + int _cnt304=0; for (;;) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { mDIGIT(false); } else { - if ( _cnt299>=1 ) { goto _loop299; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} + if ( _cnt304>=1 ) { goto _loop304; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} } - _cnt299++; + _cnt304++; } - _loop299:; + _loop304:; } // ( ... )+ mDOT(false); { // ( ... )+ - int _cnt301=0; + int _cnt306=0; for (;;) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { mDIGIT(false); } else { - if ( _cnt301>=1 ) { goto _loop301; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} + if ( _cnt306>=1 ) { goto _loop306; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} } - _cnt301++; + _cnt306++; } - _loop301:; + _loop306:; } // ( ... )+ } if ( inputState->guessing==0 ) { -#line 2261 "pix.g" +#line 2299 "pix.g" _ttype = IPV4; -#line 1114 "PIXCfgLexer.cpp" +#line 1118 "PIXCfgLexer.cpp" } } else { - bool synPredMatched307 = false; + bool synPredMatched312 = false; if ((((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (_tokenSet_4.member(LA(2))) && (_tokenSet_4.member(LA(3))))) { - int _m307 = mark(); - synPredMatched307 = true; + int _m312 = mark(); + synPredMatched312 = true; inputState->guessing++; try { { { // ( ... )+ - int _cnt304=0; + int _cnt309=0; for (;;) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { mDIGIT(false); } else { - if ( _cnt304>=1 ) { goto _loop304; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} + if ( _cnt309>=1 ) { goto _loop309; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} } - _cnt304++; + _cnt309++; } - _loop304:; + _loop309:; } // ( ... )+ mDOT(false); { // ( ... )+ - int _cnt306=0; + int _cnt311=0; for (;;) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { mDIGIT(false); } else { - if ( _cnt306>=1 ) { goto _loop306; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} + if ( _cnt311>=1 ) { goto _loop311; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} } - _cnt306++; + _cnt311++; } - _loop306:; + _loop311:; } // ( ... )+ } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { - synPredMatched307 = false; + synPredMatched312 = false; } - rewind(_m307); + rewind(_m312); inputState->guessing--; } - if ( synPredMatched307 ) { + if ( synPredMatched312 ) { { { // ( ... )+ - int _cnt310=0; + int _cnt315=0; for (;;) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { mDIGIT(false); } else { - if ( _cnt310>=1 ) { goto _loop310; } 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());} } - _cnt310++; + _cnt315++; } - _loop310:; + _loop315:; } // ( ... )+ mDOT(false); { // ( ... )+ - int _cnt312=0; + int _cnt317=0; for (;;) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { mDIGIT(false); } else { - if ( _cnt312>=1 ) { goto _loop312; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} + if ( _cnt317>=1 ) { goto _loop317; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());} } - _cnt312++; + _cnt317++; } - _loop312:; + _loop317:; } // ( ... )+ } if ( inputState->guessing==0 ) { -#line 2264 "pix.g" +#line 2302 "pix.g" _ttype = NUMBER; -#line 1197 "PIXCfgLexer.cpp" +#line 1201 "PIXCfgLexer.cpp" } } else if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ )) && (true) && (true)) { { // ( ... )+ - int _cnt314=0; + int _cnt319=0; for (;;) { if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) { mDIGIT(false); } else { - if ( _cnt314>=1 ) { goto _loop314; } 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());} } - _cnt314++; + _cnt319++; } - _loop314:; + _loop319:; } // ( ... )+ if ( inputState->guessing==0 ) { -#line 2266 "pix.g" +#line 2304 "pix.g" _ttype = INT_CONST; -#line 1218 "PIXCfgLexer.cpp" +#line 1222 "PIXCfgLexer.cpp" } } else { @@ -1312,13 +1316,28 @@ void PIXCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) { break; } case 0x2a /* '*' */ : + { + match('*' /* charlit */ ); + break; + } case 0x2b /* '+' */ : - case 0x2c /* ',' */ : + { + match('+' /* charlit */ ); + break; + } case 0x2d /* '-' */ : + { + match('-' /* charlit */ ); + break; + } case 0x2e /* '.' */ : + { + match('.' /* charlit */ ); + break; + } case 0x2f /* '/' */ : { - matchRange('*','/'); + match('/' /* charlit */ ); break; } case 0x30 /* '0' */ : @@ -1452,16 +1471,16 @@ void PIXCfgLexer::mNUMBER_ADDRESS_OR_WORD(bool _createToken) { } default: { - goto _loop334; + goto _loop339; } } } - _loop334:; + _loop339:; } // ( ... )* if ( inputState->guessing==0 ) { -#line 2289 "pix.g" +#line 2329 "pix.g" _ttype = WORD; -#line 1465 "PIXCfgLexer.cpp" +#line 1484 "PIXCfgLexer.cpp" } } else { @@ -1503,11 +1522,11 @@ void PIXCfgLexer::mSTRING(bool _createToken) { matchNot('\"' /* charlit */ ); } else { - goto _loop337; + goto _loop342; } } - _loop337:; + _loop342:; } // ( ... )* match('\"' /* charlit */ ); if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) { @@ -1889,7 +1908,7 @@ const unsigned long PIXCfgLexer::_tokenSet_0_data_[] = { 4294958072UL, 1UL, 0UL, // 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8a 0x8b 0x8c 0x8d 0x8e 0x8f // 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 +// 0xac 0xad 0xae 0xaf 0xb0 0xb1 0xb2 0xb3 0xb4 0xb5 0xb6 0xb7 0xb8 const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgLexer::_tokenSet_0(_tokenSet_0_data_,16); const unsigned long PIXCfgLexer::_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 @@ -1900,7 +1919,7 @@ const unsigned long PIXCfgLexer::_tokenSet_1_data_[] = { 4294958072UL, 429496729 // 0x84 0x85 0x86 0x87 0x88 0x89 0x8a 0x8b 0x8c 0x8d 0x8e 0x8f 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 +// 0xae 0xaf 0xb0 0xb1 0xb2 0xb3 0xb4 0xb5 0xb6 0xb7 0xb8 const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgLexer::_tokenSet_1(_tokenSet_1_data_,16); const unsigned long PIXCfgLexer::_tokenSet_2_data_[] = { 0UL, 67043328UL, 0UL, 126UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // 0 1 2 3 4 5 6 7 8 9 a b c d e f @@ -1924,6 +1943,6 @@ const unsigned long PIXCfgLexer::_tokenSet_6_data_[] = { 4294967288UL, 429496729 // 0x84 0x85 0x86 0x87 0x88 0x89 0x8a 0x8b 0x8c 0x8d 0x8e 0x8f 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 +// 0xae 0xaf 0xb0 0xb1 0xb2 0xb3 0xb4 0xb5 0xb6 0xb7 0xb8 const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgLexer::_tokenSet_6(_tokenSet_6_data_,16); diff --git a/src/parsers/PIXCfgParser.cpp b/src/parsers/PIXCfgParser.cpp index 350710208..285d24582 100644 --- a/src/parsers/PIXCfgParser.cpp +++ b/src/parsers/PIXCfgParser.cpp @@ -45,7 +45,6 @@ PIXCfgParser::PIXCfgParser(const ANTLR_USE_NAMESPACE(antlr)ParserSharedInputStat } void PIXCfgParser::cfgfile() { - Tracer traceInOut(this, "cfgfile"); try { // for error handling { // ( ... )+ @@ -164,6 +163,11 @@ void PIXCfgParser::cfgfile() { timeout_command(); break; } + case DNS: + { + dns_command(); + break; + } case WORD: { unknown_command(); @@ -222,7 +226,6 @@ void PIXCfgParser::cfgfile() { } void PIXCfgParser::comment() { - Tracer traceInOut(this, "comment"); try { // for error handling { @@ -255,7 +258,6 @@ void PIXCfgParser::comment() { } void PIXCfgParser::version() { - Tracer traceInOut(this, "version"); try { // for error handling { @@ -279,14 +281,14 @@ void PIXCfgParser::version() { match(VERSION_WORD); match(NUMBER); if ( inputState->guessing==0 ) { -#line 824 "pix.g" +#line 836 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->setDiscoveredVersion(LT(0)->getText()); *dbg << "VERSION " << LT(0)->getText() << std::endl; consumeUntil(NEWLINE); -#line 290 "PIXCfgParser.cpp" +#line 292 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -300,7 +302,6 @@ void PIXCfgParser::version() { } void PIXCfgParser::hostname() { - Tracer traceInOut(this, "hostname"); try { // for error handling match(HOSTNAME); @@ -323,7 +324,7 @@ void PIXCfgParser::hostname() { } } if ( inputState->guessing==0 ) { -#line 834 "pix.g" +#line 846 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->setHostName( LT(0)->getText() ); @@ -331,7 +332,7 @@ void PIXCfgParser::hostname() { << "LT0=" << LT(0)->getText() << std::endl; -#line 335 "PIXCfgParser.cpp" +#line 336 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -345,13 +346,12 @@ void PIXCfgParser::hostname() { } void PIXCfgParser::community_list_command() { - Tracer traceInOut(this, "community_list_command"); try { // for error handling match(IP); match(COMMUNITY_LIST); if ( inputState->guessing==0 ) { -#line 193 "pix.g" +#line 195 "pix.g" consumeUntil(NEWLINE); @@ -369,17 +369,16 @@ void PIXCfgParser::community_list_command() { } void PIXCfgParser::unknown_ip_command() { - Tracer traceInOut(this, "unknown_ip_command"); try { // for error handling match(IP); match(WORD); if ( inputState->guessing==0 ) { -#line 793 "pix.g" +#line 798 "pix.g" consumeUntil(NEWLINE); -#line 383 "PIXCfgParser.cpp" +#line 382 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -393,7 +392,6 @@ void PIXCfgParser::unknown_ip_command() { } void PIXCfgParser::intrface() { - Tracer traceInOut(this, "intrface"); try { // for error handling match(INTRFACE); @@ -421,35 +419,34 @@ void PIXCfgParser::intrface() { } void PIXCfgParser::nameif_top_level() { - Tracer traceInOut(this, "nameif_top_level"); -#line 1387 "pix.g" +#line 1399 "pix.g" std::string intf_name, intf_label, sec_level; -#line 430 "PIXCfgParser.cpp" +#line 427 "PIXCfgParser.cpp" try { // for error handling match(NAMEIF); match(WORD); if ( inputState->guessing==0 ) { -#line 1392 "pix.g" +#line 1404 "pix.g" intf_name = LT(0)->getText(); -#line 438 "PIXCfgParser.cpp" +#line 435 "PIXCfgParser.cpp" } interface_label(); if ( inputState->guessing==0 ) { -#line 1393 "pix.g" +#line 1405 "pix.g" intf_label = LT(0)->getText(); -#line 444 "PIXCfgParser.cpp" +#line 441 "PIXCfgParser.cpp" } match(WORD); if ( inputState->guessing==0 ) { -#line 1394 "pix.g" +#line 1406 "pix.g" sec_level = LT(0)->getText(); -#line 450 "PIXCfgParser.cpp" +#line 447 "PIXCfgParser.cpp" } if ( inputState->guessing==0 ) { -#line 1395 "pix.g" +#line 1407 "pix.g" importer->setInterfaceParametes(intf_name, intf_label, sec_level); *dbg << " NAMEIF: " @@ -457,7 +454,7 @@ void PIXCfgParser::nameif_top_level() { << intf_label << " " << sec_level << std::endl; -#line 461 "PIXCfgParser.cpp" +#line 458 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -471,17 +468,16 @@ void PIXCfgParser::nameif_top_level() { } void PIXCfgParser::controller() { - Tracer traceInOut(this, "controller"); try { // for error handling match(CONTROLLER); if ( inputState->guessing==0 ) { -#line 1299 "pix.g" +#line 1311 "pix.g" importer->clearCurrentInterface(); consumeUntil(NEWLINE); -#line 485 "PIXCfgParser.cpp" +#line 481 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -495,7 +491,6 @@ void PIXCfgParser::controller() { } void PIXCfgParser::access_list_commands() { - Tracer traceInOut(this, "access_list_commands"); ANTLR_USE_NAMESPACE(antlr)RefToken name = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -503,7 +498,7 @@ void PIXCfgParser::access_list_commands() { name = LT(1); match(WORD); if ( inputState->guessing==0 ) { -#line 846 "pix.g" +#line 858 "pix.g" importer->clear(); importer->setCurrentLineNumber(LT(0)->getLine()); @@ -512,7 +507,7 @@ void PIXCfgParser::access_list_commands() { *dbg << name->getLine() << ":" << " ACL ext " << name->getText() << std::endl; -#line 516 "PIXCfgParser.cpp" +#line 511 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -551,12 +546,12 @@ void PIXCfgParser::access_list_commands() { } } if ( inputState->guessing==0 ) { -#line 869 "pix.g" +#line 881 "pix.g" *dbg << LT(0)->getLine() << ":" << " ACL line end" << std::endl << std::endl; -#line 560 "PIXCfgParser.cpp" +#line 555 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -570,16 +565,15 @@ void PIXCfgParser::access_list_commands() { } void PIXCfgParser::ssh_command() { - Tracer traceInOut(this, "ssh_command"); try { // for error handling match(SSH); if ( inputState->guessing==0 ) { -#line 1634 "pix.g" +#line 1646 "pix.g" importer->clear(); -#line 583 "PIXCfgParser.cpp" +#line 577 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -589,6 +583,18 @@ void PIXCfgParser::ssh_command() { match(TIMEOUT); match(INT_CONST); } + if ( inputState->guessing==0 ) { +#line 1651 "pix.g" + + // set ssh timeout here + +#line 592 "PIXCfgParser.cpp" + } + break; + } + case SCOPY: + { + match(SCOPY); break; } case IPV4: @@ -601,16 +607,16 @@ void PIXCfgParser::ssh_command() { { hostaddr_expr(); if ( inputState->guessing==0 ) { -#line 1641 "pix.g" +#line 1659 "pix.g" importer->SaveTmpAddrToSrc(); -#line 609 "PIXCfgParser.cpp" +#line 615 "PIXCfgParser.cpp" } interface_label(); } if ( inputState->guessing==0 ) { -#line 1646 "pix.g" +#line 1664 "pix.g" std::string intf_label = LT(0)->getText(); std::string acl_name = "ssh_commands_" + intf_label; @@ -627,7 +633,7 @@ void PIXCfgParser::ssh_command() { importer->pushRule(); *dbg << std::endl; -#line 631 "PIXCfgParser.cpp" +#line 637 "PIXCfgParser.cpp" } break; } @@ -649,16 +655,15 @@ void PIXCfgParser::ssh_command() { } void PIXCfgParser::telnet_command() { - Tracer traceInOut(this, "telnet_command"); try { // for error handling match(TELNET); if ( inputState->guessing==0 ) { -#line 1666 "pix.g" +#line 1684 "pix.g" importer->clear(); -#line 662 "PIXCfgParser.cpp" +#line 667 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -680,16 +685,16 @@ void PIXCfgParser::telnet_command() { { hostaddr_expr(); if ( inputState->guessing==0 ) { -#line 1673 "pix.g" +#line 1691 "pix.g" importer->SaveTmpAddrToSrc(); -#line 688 "PIXCfgParser.cpp" +#line 693 "PIXCfgParser.cpp" } interface_label(); } if ( inputState->guessing==0 ) { -#line 1678 "pix.g" +#line 1696 "pix.g" std::string intf_label = LT(0)->getText(); std::string acl_name = "telnet_commands_" + intf_label; @@ -706,7 +711,7 @@ void PIXCfgParser::telnet_command() { importer->pushRule(); *dbg << std::endl; -#line 710 "PIXCfgParser.cpp" +#line 715 "PIXCfgParser.cpp" } break; } @@ -728,7 +733,6 @@ void PIXCfgParser::telnet_command() { } void PIXCfgParser::icmp_top_level_command() { - Tracer traceInOut(this, "icmp_top_level_command"); ANTLR_USE_NAMESPACE(antlr)RefToken permit = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken deny = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -741,11 +745,11 @@ void PIXCfgParser::icmp_top_level_command() { { match(UNREACHABLE); if ( inputState->guessing==0 ) { -#line 1707 "pix.g" +#line 1725 "pix.g" consumeUntil(NEWLINE); -#line 749 "PIXCfgParser.cpp" +#line 753 "PIXCfgParser.cpp" } } break; @@ -775,19 +779,19 @@ void PIXCfgParser::icmp_top_level_command() { } } if ( inputState->guessing==0 ) { -#line 1714 "pix.g" +#line 1732 "pix.g" importer->clear(); -#line 783 "PIXCfgParser.cpp" +#line 787 "PIXCfgParser.cpp" } hostaddr_expr(); if ( inputState->guessing==0 ) { -#line 1718 "pix.g" +#line 1736 "pix.g" importer->SaveTmpAddrToSrc(); -#line 791 "PIXCfgParser.cpp" +#line 795 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -813,7 +817,7 @@ void PIXCfgParser::icmp_top_level_command() { } interface_label(); if ( inputState->guessing==0 ) { -#line 1723 "pix.g" +#line 1741 "pix.g" std::string intf_label = LT(0)->getText(); std::string acl_name = "icmp_commands_" + intf_label; @@ -828,7 +832,7 @@ void PIXCfgParser::icmp_top_level_command() { acl_name, intf_label, "in" ); importer->pushRule(); -#line 832 "PIXCfgParser.cpp" +#line 836 "PIXCfgParser.cpp" } } break; @@ -851,20 +855,19 @@ void PIXCfgParser::icmp_top_level_command() { } void PIXCfgParser::nat_old_top_level_command() { - Tracer traceInOut(this, "nat_old_top_level_command"); try { // for error handling match(NAT); match(OPENING_PAREN); interface_label(); if ( inputState->guessing==0 ) { -#line 1809 "pix.g" +#line 1827 "pix.g" importer->prenat_interface = LT(0)->getText(); -#line 864 "PIXCfgParser.cpp" +#line 867 "PIXCfgParser.cpp" } match(CLOSING_PAREN); if ( inputState->guessing==0 ) { -#line 1811 "pix.g" +#line 1829 "pix.g" importer->clear(); importer->setCurrentLineNumber(LT(0)->getLine()); @@ -873,25 +876,25 @@ void PIXCfgParser::nat_old_top_level_command() { importer->rule_type = libfwbuilder::NATRule::SNAT; -#line 877 "PIXCfgParser.cpp" +#line 880 "PIXCfgParser.cpp" } match(INT_CONST); if ( inputState->guessing==0 ) { -#line 1822 "pix.g" +#line 1840 "pix.g" importer->nat_num = LT(0)->getText(); -#line 885 "PIXCfgParser.cpp" +#line 888 "PIXCfgParser.cpp" } nat_addr_match(); nat_command_last_parameters(); match(NEWLINE); if ( inputState->guessing==0 ) { -#line 1834 "pix.g" +#line 1852 "pix.g" importer->pushNATRule(); -#line 895 "PIXCfgParser.cpp" +#line 898 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -905,7 +908,6 @@ void PIXCfgParser::nat_old_top_level_command() { } void PIXCfgParser::global_top_level_command() { - Tracer traceInOut(this, "global_top_level_command"); ANTLR_USE_NAMESPACE(antlr)RefToken num = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -913,15 +915,15 @@ void PIXCfgParser::global_top_level_command() { match(OPENING_PAREN); interface_label(); if ( inputState->guessing==0 ) { -#line 1880 "pix.g" +#line 1898 "pix.g" importer->global_interface = LT(0)->getText(); -#line 919 "PIXCfgParser.cpp" +#line 921 "PIXCfgParser.cpp" } match(CLOSING_PAREN); num = LT(1); match(INT_CONST); if ( inputState->guessing==0 ) { -#line 1882 "pix.g" +#line 1900 "pix.g" importer->clear(); importer->setCurrentLineNumber(LT(0)->getLine()); @@ -932,14 +934,14 @@ void PIXCfgParser::global_top_level_command() { << importer->global_interface << std::endl; -#line 936 "PIXCfgParser.cpp" +#line 938 "PIXCfgParser.cpp" } if ( inputState->guessing==0 ) { -#line 1892 "pix.g" +#line 1910 "pix.g" consumeUntil(NEWLINE); -#line 943 "PIXCfgParser.cpp" +#line 945 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -953,35 +955,46 @@ void PIXCfgParser::global_top_level_command() { } void PIXCfgParser::static_top_level_command() { - Tracer traceInOut(this, "static_top_level_command"); - ANTLR_USE_NAMESPACE(antlr)RefToken prenat_intf = ANTLR_USE_NAMESPACE(antlr)nullToken; - ANTLR_USE_NAMESPACE(antlr)RefToken postnat_intf = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling match(STATIC); - match(OPENING_PAREN); - prenat_intf = LT(1); - match(WORD); - match(COMMA); - postnat_intf = LT(1); - match(WORD); - match(CLOSING_PAREN); if ( inputState->guessing==0 ) { -#line 1900 "pix.g" +#line 1917 "pix.g" importer->clear(); + +#line 967 "PIXCfgParser.cpp" + } + match(OPENING_PAREN); + interface_label(); + if ( inputState->guessing==0 ) { +#line 1921 "pix.g" + importer->prenat_interface = LT(0)->getText(); +#line 974 "PIXCfgParser.cpp" + } + match(COMMA); + interface_label(); + if ( inputState->guessing==0 ) { +#line 1923 "pix.g" + importer->postnat_interface = LT(0)->getText(); +#line 981 "PIXCfgParser.cpp" + } + match(CLOSING_PAREN); + if ( inputState->guessing==0 ) { +#line 1925 "pix.g" + importer->setCurrentLineNumber(LT(0)->getLine()); importer->newUnidirRuleSet("nat", libfwbuilder::NAT::TYPENAME ); - *dbg << " DNAT rule " << std::endl; + importer->newNATRule(); + *dbg << " DNAT rule "; importer->rule_type = libfwbuilder::NATRule::DNAT; - importer->prenat_interface = prenat_intf->getText(); - importer->postnat_interface = postnat_intf->getText(); -#line 981 "PIXCfgParser.cpp" +#line 993 "PIXCfgParser.cpp" } { switch ( LA(1)) { - case HOST: + case IPV4: + case IPV6: case INTRFACE: { static_starts_with_hostaddr(); @@ -1001,11 +1014,12 @@ void PIXCfgParser::static_top_level_command() { } match(NEWLINE); if ( inputState->guessing==0 ) { -#line 1919 "pix.g" +#line 1942 "pix.g" importer->pushNATRule(); + *dbg << std::endl; -#line 1009 "PIXCfgParser.cpp" +#line 1023 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -1019,7 +1033,6 @@ void PIXCfgParser::static_top_level_command() { } void PIXCfgParser::access_group() { - Tracer traceInOut(this, "access_group"); ANTLR_USE_NAMESPACE(antlr)RefToken aclname = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken dir = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -1032,7 +1045,7 @@ void PIXCfgParser::access_group() { match(INTRFACE); interface_label(); if ( inputState->guessing==0 ) { -#line 1782 "pix.g" +#line 1800 "pix.g" std::string intf_label = LT(0)->getText(); importer->setCurrentLineNumber(LT(0)->getLine()); @@ -1045,7 +1058,7 @@ void PIXCfgParser::access_group() { << " " << intf_label << " " << dir->getText() << std::endl; -#line 1049 "PIXCfgParser.cpp" +#line 1062 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -1059,7 +1072,6 @@ void PIXCfgParser::access_group() { } void PIXCfgParser::exit() { - Tracer traceInOut(this, "exit"); try { // for error handling match(EXIT); @@ -1075,18 +1087,17 @@ void PIXCfgParser::exit() { } void PIXCfgParser::certificate() { - Tracer traceInOut(this, "certificate"); try { // for error handling match(CERTIFICATE); match(WORD); if ( inputState->guessing==0 ) { -#line 816 "pix.g" +#line 828 "pix.g" consumeUntil(NEWLINE); consumeUntil(QUIT); -#line 1090 "PIXCfgParser.cpp" +#line 1101 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -1100,16 +1111,15 @@ void PIXCfgParser::certificate() { } void PIXCfgParser::quit() { - Tracer traceInOut(this, "quit"); try { // for error handling match(QUIT); if ( inputState->guessing==0 ) { -#line 186 "pix.g" +#line 188 "pix.g" consumeUntil(NEWLINE); -#line 1113 "PIXCfgParser.cpp" +#line 1123 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -1123,12 +1133,11 @@ void PIXCfgParser::quit() { } void PIXCfgParser::names_section() { - Tracer traceInOut(this, "names_section"); try { // for error handling match(NAMES); if ( inputState->guessing==0 ) { -#line 207 "pix.g" +#line 209 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->addMessageToLog( @@ -1136,7 +1145,7 @@ void PIXCfgParser::names_section() { "Import of configuration that uses \"names\" " "is not supported at this time"); -#line 1140 "PIXCfgParser.cpp" +#line 1149 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -1150,7 +1159,6 @@ void PIXCfgParser::names_section() { } void PIXCfgParser::name_entry() { - Tracer traceInOut(this, "name_entry"); ANTLR_USE_NAMESPACE(antlr)RefToken a = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken v6 = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken n = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -1180,7 +1188,7 @@ void PIXCfgParser::name_entry() { n = LT(1); match(WORD); if ( inputState->guessing==0 ) { -#line 217 "pix.g" +#line 219 "pix.g" if (a) { @@ -1196,7 +1204,7 @@ void PIXCfgParser::name_entry() { consumeUntil(NEWLINE); } -#line 1200 "PIXCfgParser.cpp" +#line 1208 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -1210,7 +1218,6 @@ void PIXCfgParser::name_entry() { } void PIXCfgParser::named_object_network() { - Tracer traceInOut(this, "named_object_network"); ANTLR_USE_NAMESPACE(antlr)RefToken name = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -1220,7 +1227,7 @@ void PIXCfgParser::named_object_network() { match(WORD); match(NEWLINE); if ( inputState->guessing==0 ) { -#line 250 "pix.g" +#line 252 "pix.g" importer->clear(); importer->setCurrentLineNumber(LT(0)->getLine()); @@ -1228,7 +1235,7 @@ void PIXCfgParser::named_object_network() { *dbg << name->getLine() << ":" << " Named Object " << name->getText() << std::endl; -#line 1232 "PIXCfgParser.cpp" +#line 1239 "PIXCfgParser.cpp" } { // ( ... )* for (;;) { @@ -1268,7 +1275,6 @@ void PIXCfgParser::named_object_network() { } void PIXCfgParser::named_object_service() { - Tracer traceInOut(this, "named_object_service"); ANTLR_USE_NAMESPACE(antlr)RefToken name = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -1278,7 +1284,7 @@ void PIXCfgParser::named_object_service() { match(WORD); match(NEWLINE); if ( inputState->guessing==0 ) { -#line 354 "pix.g" +#line 359 "pix.g" importer->clear(); importer->setCurrentLineNumber(LT(0)->getLine()); @@ -1286,7 +1292,7 @@ void PIXCfgParser::named_object_service() { *dbg << name->getLine() << ":" << " Named Object " << name->getText() << std::endl; -#line 1290 "PIXCfgParser.cpp" +#line 1296 "PIXCfgParser.cpp" } { // ( ... )* for (;;) { @@ -1312,7 +1318,6 @@ void PIXCfgParser::named_object_service() { } void PIXCfgParser::object_group_network() { - Tracer traceInOut(this, "object_group_network"); ANTLR_USE_NAMESPACE(antlr)RefToken name = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -1322,7 +1327,7 @@ void PIXCfgParser::object_group_network() { match(WORD); match(NEWLINE); if ( inputState->guessing==0 ) { -#line 470 "pix.g" +#line 475 "pix.g" importer->clear(); importer->setCurrentLineNumber(LT(0)->getLine()); @@ -1330,7 +1335,7 @@ void PIXCfgParser::object_group_network() { *dbg << name->getLine() << ":" << " Object Group " << name->getText() << std::endl; -#line 1334 "PIXCfgParser.cpp" +#line 1339 "PIXCfgParser.cpp" } { // ( ... )* for (;;) { @@ -1356,7 +1361,6 @@ void PIXCfgParser::object_group_network() { } void PIXCfgParser::object_group_service() { - Tracer traceInOut(this, "object_group_service"); ANTLR_USE_NAMESPACE(antlr)RefToken name = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken tcp = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken udp = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -1399,7 +1403,7 @@ void PIXCfgParser::object_group_service() { } match(NEWLINE); if ( inputState->guessing==0 ) { -#line 692 "pix.g" +#line 697 "pix.g" importer->clear(); importer->setCurrentLineNumber(LT(0)->getLine()); @@ -1410,7 +1414,7 @@ void PIXCfgParser::object_group_service() { *dbg << name->getLine() << ":" << " Object Group " << name->getText() << std::endl; -#line 1414 "PIXCfgParser.cpp" +#line 1418 "PIXCfgParser.cpp" } { // ( ... )* for (;;) { @@ -1436,7 +1440,6 @@ void PIXCfgParser::object_group_service() { } void PIXCfgParser::object_group_protocol() { - Tracer traceInOut(this, "object_group_protocol"); ANTLR_USE_NAMESPACE(antlr)RefToken name = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -1446,7 +1449,7 @@ void PIXCfgParser::object_group_protocol() { match(WORD); match(NEWLINE); if ( inputState->guessing==0 ) { -#line 568 "pix.g" +#line 573 "pix.g" importer->clear(); importer->setCurrentLineNumber(LT(0)->getLine()); @@ -1454,7 +1457,7 @@ void PIXCfgParser::object_group_protocol() { *dbg << name->getLine() << ":" << " Object Group " << name->getText() << std::endl; -#line 1458 "PIXCfgParser.cpp" +#line 1461 "PIXCfgParser.cpp" } { // ( ... )+ int _cnt61=0; @@ -1482,7 +1485,6 @@ void PIXCfgParser::object_group_protocol() { } void PIXCfgParser::object_group_icmp_8_0() { - Tracer traceInOut(this, "object_group_icmp_8_0"); ANTLR_USE_NAMESPACE(antlr)RefToken name = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -1492,7 +1494,7 @@ void PIXCfgParser::object_group_icmp_8_0() { match(WORD); match(NEWLINE); if ( inputState->guessing==0 ) { -#line 623 "pix.g" +#line 628 "pix.g" importer->clear(); importer->setCurrentLineNumber(LT(0)->getLine()); @@ -1500,7 +1502,7 @@ void PIXCfgParser::object_group_icmp_8_0() { *dbg << name->getLine() << ":" << " Object Group " << name->getText() << std::endl; -#line 1504 "PIXCfgParser.cpp" +#line 1506 "PIXCfgParser.cpp" } { // ( ... )* for (;;) { @@ -1526,7 +1528,6 @@ void PIXCfgParser::object_group_icmp_8_0() { } void PIXCfgParser::object_group_icmp_8_3() { - Tracer traceInOut(this, "object_group_icmp_8_3"); ANTLR_USE_NAMESPACE(antlr)RefToken name = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -1536,7 +1537,7 @@ void PIXCfgParser::object_group_icmp_8_3() { match(WORD); match(NEWLINE); if ( inputState->guessing==0 ) { -#line 636 "pix.g" +#line 641 "pix.g" importer->clear(); importer->setCurrentLineNumber(LT(0)->getLine()); @@ -1544,7 +1545,7 @@ void PIXCfgParser::object_group_icmp_8_3() { *dbg << name->getLine() << ":" << " Object Group " << name->getText() << std::endl; -#line 1548 "PIXCfgParser.cpp" +#line 1549 "PIXCfgParser.cpp" } { // ( ... )* for (;;) { @@ -1570,12 +1571,11 @@ void PIXCfgParser::object_group_icmp_8_3() { } void PIXCfgParser::crypto() { - Tracer traceInOut(this, "crypto"); try { // for error handling match(CRYPTO); if ( inputState->guessing==0 ) { -#line 786 "pix.g" +#line 791 "pix.g" consumeUntil(NEWLINE); @@ -1593,18 +1593,17 @@ void PIXCfgParser::crypto() { } void PIXCfgParser::no_commands() { - Tracer traceInOut(this, "no_commands"); try { // for error handling match(NO); if ( inputState->guessing==0 ) { -#line 807 "pix.g" +#line 819 "pix.g" *dbg << " TOP LEVEL \"NO\" COMMAND: " << LT(0)->getText() << std::endl; consumeUntil(NEWLINE); -#line 1608 "PIXCfgParser.cpp" +#line 1607 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -1618,16 +1617,37 @@ void PIXCfgParser::no_commands() { } void PIXCfgParser::timeout_command() { - Tracer traceInOut(this, "timeout_command"); try { // for error handling match(TIMEOUT); if ( inputState->guessing==0 ) { -#line 200 "pix.g" +#line 202 "pix.g" consumeUntil(NEWLINE); -#line 1631 "PIXCfgParser.cpp" +#line 1629 "PIXCfgParser.cpp" + } + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { + if( inputState->guessing == 0 ) { + reportError(ex); + recover(ex,_tokenSet_1); + } else { + throw; + } + } +} + +void PIXCfgParser::dns_command() { + + try { // for error handling + match(DNS); + if ( inputState->guessing==0 ) { +#line 812 "pix.g" + + consumeUntil(NEWLINE); + +#line 1651 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -1641,16 +1661,15 @@ void PIXCfgParser::timeout_command() { } void PIXCfgParser::unknown_command() { - Tracer traceInOut(this, "unknown_command"); try { // for error handling match(WORD); if ( inputState->guessing==0 ) { -#line 800 "pix.g" +#line 805 "pix.g" consumeUntil(NEWLINE); -#line 1654 "PIXCfgParser.cpp" +#line 1673 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -1664,7 +1683,6 @@ void PIXCfgParser::unknown_command() { } void PIXCfgParser::ip_protocol_names() { - Tracer traceInOut(this, "ip_protocol_names"); try { // for error handling { @@ -1762,14 +1780,13 @@ void PIXCfgParser::ip_protocol_names() { } void PIXCfgParser::named_object_nat() { - Tracer traceInOut(this, "named_object_nat"); try { // for error handling match(NAT); match(OPENING_PAREN); interface_label(); if ( inputState->guessing==0 ) { -#line 278 "pix.g" +#line 280 "pix.g" importer->addMessageToLog( "Parser warning: " @@ -1777,7 +1794,7 @@ void PIXCfgParser::named_object_nat() { "is not supported at this time"); consumeUntil(NEWLINE); -#line 1781 "PIXCfgParser.cpp" +#line 1798 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -1791,12 +1808,11 @@ void PIXCfgParser::named_object_nat() { } void PIXCfgParser::named_object_description() { - Tracer traceInOut(this, "named_object_description"); try { // for error handling match(DESCRIPTION); if ( inputState->guessing==0 ) { -#line 288 "pix.g" +#line 290 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); *dbg << LT(1)->getLine() << ":"; @@ -1809,7 +1825,7 @@ void PIXCfgParser::named_object_description() { importer->setNamedObjectDescription(descr); *dbg << " DESCRIPTION " << descr << std::endl; -#line 1813 "PIXCfgParser.cpp" +#line 1829 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -1823,7 +1839,6 @@ void PIXCfgParser::named_object_description() { } void PIXCfgParser::named_object_network_parameters() { - Tracer traceInOut(this, "named_object_network_parameters"); try { // for error handling { @@ -1862,54 +1877,10 @@ void PIXCfgParser::named_object_network_parameters() { } void PIXCfgParser::host_addr() { - Tracer traceInOut(this, "host_addr"); - ANTLR_USE_NAMESPACE(antlr)RefToken h = ANTLR_USE_NAMESPACE(antlr)nullToken; - ANTLR_USE_NAMESPACE(antlr)RefToken v6 = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling - { match(HOST); - { - switch ( LA(1)) { - case IPV4: - { - h = LT(1); - match(IPV4); - break; - } - case IPV6: - { - v6 = LT(1); - match(IPV6); - break; - } - default: - { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - } - } - } - if ( inputState->guessing==0 ) { -#line 303 "pix.g" - - importer->setCurrentLineNumber(LT(0)->getLine()); - if (h) - { - importer->tmp_a = h->getText(); - importer->tmp_nm = "255.255.255.255"; - importer->commitNamedAddressObject(); - *dbg << h->getText() << "/255.255.255.255"; - } - if (v6) - { - importer->addMessageToLog( - "Parser warning: IPv6 import is not supported. "); - consumeUntil(NEWLINE); - } - -#line 1912 "PIXCfgParser.cpp" - } + single_addr(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { @@ -1922,7 +1893,6 @@ void PIXCfgParser::host_addr() { } void PIXCfgParser::range_addr() { - Tracer traceInOut(this, "range_addr"); ANTLR_USE_NAMESPACE(antlr)RefToken r1 = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken r2 = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -1935,7 +1905,7 @@ void PIXCfgParser::range_addr() { match(IPV4); } if ( inputState->guessing==0 ) { -#line 322 "pix.g" +#line 327 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->tmp_range_1 = r1->getText(); @@ -1943,7 +1913,7 @@ void PIXCfgParser::range_addr() { importer->commitNamedAddressRangeObject(); *dbg << r1->getText() << "/" << r2->getText(); -#line 1947 "PIXCfgParser.cpp" +#line 1917 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -1957,7 +1927,6 @@ void PIXCfgParser::range_addr() { } void PIXCfgParser::subnet_addr() { - Tracer traceInOut(this, "subnet_addr"); ANTLR_USE_NAMESPACE(antlr)RefToken a = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken nm = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken v6 = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -1991,7 +1960,7 @@ void PIXCfgParser::subnet_addr() { } } if ( inputState->guessing==0 ) { -#line 332 "pix.g" +#line 337 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); if (a) @@ -2008,7 +1977,7 @@ void PIXCfgParser::subnet_addr() { consumeUntil(NEWLINE); } -#line 2012 "PIXCfgParser.cpp" +#line 1981 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -2022,7 +1991,6 @@ void PIXCfgParser::subnet_addr() { } void PIXCfgParser::interface_label() { - Tracer traceInOut(this, "interface_label"); try { // for error handling switch ( LA(1)) { @@ -2052,8 +2020,63 @@ void PIXCfgParser::interface_label() { } } +void PIXCfgParser::single_addr() { + ANTLR_USE_NAMESPACE(antlr)RefToken h = ANTLR_USE_NAMESPACE(antlr)nullToken; + ANTLR_USE_NAMESPACE(antlr)RefToken v6 = ANTLR_USE_NAMESPACE(antlr)nullToken; + + try { // for error handling + { + switch ( LA(1)) { + case IPV4: + { + h = LT(1); + match(IPV4); + break; + } + case IPV6: + { + v6 = LT(1); + match(IPV6); + break; + } + default: + { + throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); + } + } + } + if ( inputState->guessing==0 ) { +#line 308 "pix.g" + + importer->setCurrentLineNumber(LT(0)->getLine()); + if (h) + { + importer->tmp_a = h->getText(); + importer->tmp_nm = "255.255.255.255"; + importer->commitNamedAddressObject(); + *dbg << h->getText() << "/255.255.255.255"; + } + if (v6) + { + importer->addMessageToLog( + "Parser warning: IPv6 import is not supported. "); + consumeUntil(NEWLINE); + } + +#line 2067 "PIXCfgParser.cpp" + } + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { + if( inputState->guessing == 0 ) { + reportError(ex); + recover(ex,_tokenSet_11); + } else { + throw; + } + } +} + void PIXCfgParser::named_object_service_parameters() { - Tracer traceInOut(this, "named_object_service_parameters"); try { // for error handling { @@ -2066,7 +2089,7 @@ void PIXCfgParser::named_object_service_parameters() { else if ((LA(1) == SERVICE) && (LA(2) == TCP || LA(2) == UDP)) { service_tcp_udp(); } - else if ((LA(1) == SERVICE) && (_tokenSet_11.member(LA(2)))) { + else if ((LA(1) == SERVICE) && (_tokenSet_12.member(LA(2)))) { service_other(); } else if ((LA(1) == SERVICE) && (LA(2) == WORD)) { @@ -2085,7 +2108,7 @@ void PIXCfgParser::named_object_service_parameters() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_12); + recover(ex,_tokenSet_13); } else { throw; } @@ -2093,7 +2116,6 @@ void PIXCfgParser::named_object_service_parameters() { } void PIXCfgParser::service_icmp() { - Tracer traceInOut(this, "service_icmp"); ANTLR_USE_NAMESPACE(antlr)RefToken icmp_type = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -2106,11 +2128,11 @@ void PIXCfgParser::service_icmp() { icmp_type = LT(1); match(INT_CONST); if ( inputState->guessing==0 ) { -#line 386 "pix.g" +#line 391 "pix.g" importer->icmp_type = LT(0)->getText(); -#line 2114 "PIXCfgParser.cpp" +#line 2136 "PIXCfgParser.cpp" } break; } @@ -2136,11 +2158,11 @@ void PIXCfgParser::service_icmp() { { icmp_names(); if ( inputState->guessing==0 ) { -#line 391 "pix.g" +#line 396 "pix.g" importer->icmp_spec = LT(0)->getText(); -#line 2144 "PIXCfgParser.cpp" +#line 2166 "PIXCfgParser.cpp" } break; } @@ -2151,13 +2173,13 @@ void PIXCfgParser::service_icmp() { } } if ( inputState->guessing==0 ) { -#line 395 "pix.g" +#line 400 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->commitNamedICMPServiceObject(); *dbg << "NAMED OBJECT SERVICE ICMP " << LT(0)->getText() << " "; -#line 2161 "PIXCfgParser.cpp" +#line 2183 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -2171,7 +2193,6 @@ void PIXCfgParser::service_icmp() { } void PIXCfgParser::service_icmp6() { - Tracer traceInOut(this, "service_icmp6"); try { // for error handling match(SERVICE); @@ -2195,7 +2216,7 @@ void PIXCfgParser::service_icmp6() { } } if ( inputState->guessing==0 ) { -#line 403 "pix.g" +#line 408 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->addMessageToLog("Parser warning: " @@ -2204,7 +2225,7 @@ void PIXCfgParser::service_icmp6() { *dbg << "NAMED OBJECT SERVICE ICMP6 " << LT(0)->getText() << " "; consumeUntil(NEWLINE); -#line 2208 "PIXCfgParser.cpp" +#line 2229 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -2218,7 +2239,6 @@ void PIXCfgParser::service_icmp6() { } void PIXCfgParser::service_tcp_udp() { - Tracer traceInOut(this, "service_tcp_udp"); try { // for error handling match(SERVICE); @@ -2241,12 +2261,12 @@ void PIXCfgParser::service_tcp_udp() { } } if ( inputState->guessing==0 ) { -#line 414 "pix.g" +#line 419 "pix.g" importer->protocol = LT(0)->getText(); *dbg << "NAMED OBJECT SERVICE " << LT(0)->getText() << " "; -#line 2250 "PIXCfgParser.cpp" +#line 2270 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -2294,12 +2314,12 @@ void PIXCfgParser::service_tcp_udp() { } } if ( inputState->guessing==0 ) { -#line 420 "pix.g" +#line 425 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->commitNamedTCPUDPServiceObject(); -#line 2303 "PIXCfgParser.cpp" +#line 2323 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -2313,7 +2333,6 @@ void PIXCfgParser::service_tcp_udp() { } void PIXCfgParser::service_other() { - Tracer traceInOut(this, "service_other"); try { // for error handling match(SERVICE); @@ -2350,14 +2369,14 @@ void PIXCfgParser::service_other() { } } if ( inputState->guessing==0 ) { -#line 439 "pix.g" +#line 444 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->protocol = LT(0)->getText(); importer->commitNamedIPServiceObject(); *dbg << "NAMED OBJECT SERVICE " << LT(0)->getText() << " "; -#line 2361 "PIXCfgParser.cpp" +#line 2380 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -2371,13 +2390,12 @@ void PIXCfgParser::service_other() { } void PIXCfgParser::service_unknown() { - Tracer traceInOut(this, "service_unknown"); try { // for error handling match(SERVICE); match(WORD); if ( inputState->guessing==0 ) { -#line 454 "pix.g" +#line 459 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->protocol = "ip"; @@ -2388,7 +2406,7 @@ void PIXCfgParser::service_unknown() { importer->addMessageToLog(err); *dbg << "UNKNOWN SERVICE " << LT(0)->getText() << " "; -#line 2392 "PIXCfgParser.cpp" +#line 2410 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -2402,7 +2420,6 @@ void PIXCfgParser::service_unknown() { } void PIXCfgParser::icmp_names() { - Tracer traceInOut(this, "icmp_names"); try { // for error handling { @@ -2509,30 +2526,6 @@ void PIXCfgParser::icmp_names() { } } } - catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { - if( inputState->guessing == 0 ) { - reportError(ex); - recover(ex,_tokenSet_13); - } else { - throw; - } - } -} - -void PIXCfgParser::src_port_spec() { - Tracer traceInOut(this, "src_port_spec"); - - try { // for error handling - match(SOURCE); - xoperator(); - if ( inputState->guessing==0 ) { -#line 427 "pix.g" - - importer->SaveTmpPortToSrc(); - -#line 2534 "PIXCfgParser.cpp" - } - } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); @@ -2543,8 +2536,30 @@ void PIXCfgParser::src_port_spec() { } } +void PIXCfgParser::src_port_spec() { + + try { // for error handling + match(SOURCE); + xoperator(); + if ( inputState->guessing==0 ) { +#line 432 "pix.g" + + importer->SaveTmpPortToSrc(); + +#line 2550 "PIXCfgParser.cpp" + } + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { + if( inputState->guessing == 0 ) { + reportError(ex); + recover(ex,_tokenSet_15); + } else { + throw; + } + } +} + void PIXCfgParser::dst_port_spec() { - Tracer traceInOut(this, "dst_port_spec"); try { // for error handling { @@ -2570,11 +2585,11 @@ void PIXCfgParser::dst_port_spec() { } xoperator(); if ( inputState->guessing==0 ) { -#line 433 "pix.g" +#line 438 "pix.g" importer->SaveTmpPortToDst(); -#line 2578 "PIXCfgParser.cpp" +#line 2593 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -2588,7 +2603,6 @@ void PIXCfgParser::dst_port_spec() { } void PIXCfgParser::xoperator() { - Tracer traceInOut(this, "xoperator"); try { // for error handling switch ( LA(1)) { @@ -2614,7 +2628,7 @@ void PIXCfgParser::xoperator() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_15); + recover(ex,_tokenSet_16); } else { throw; } @@ -2622,7 +2636,6 @@ void PIXCfgParser::xoperator() { } void PIXCfgParser::object_group_network_parameters() { - Tracer traceInOut(this, "object_group_network_parameters"); try { // for error handling { @@ -2653,7 +2666,7 @@ void PIXCfgParser::object_group_network_parameters() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_16); + recover(ex,_tokenSet_17); } else { throw; } @@ -2661,12 +2674,11 @@ void PIXCfgParser::object_group_network_parameters() { } void PIXCfgParser::object_group_description() { - Tracer traceInOut(this, "object_group_description"); try { // for error handling match(DESCRIPTION); if ( inputState->guessing==0 ) { -#line 494 "pix.g" +#line 499 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); *dbg << LT(1)->getLine() << ":"; @@ -2679,7 +2691,7 @@ void PIXCfgParser::object_group_description() { importer->setObjectGroupDescription(descr); *dbg << " DESCRIPTION " << descr << std::endl; -#line 2683 "PIXCfgParser.cpp" +#line 2695 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -2693,7 +2705,6 @@ void PIXCfgParser::object_group_description() { } void PIXCfgParser::group_object() { - Tracer traceInOut(this, "group_object"); ANTLR_USE_NAMESPACE(antlr)RefToken name = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -2701,14 +2712,14 @@ void PIXCfgParser::group_object() { name = LT(1); match(WORD); if ( inputState->guessing==0 ) { -#line 509 "pix.g" +#line 514 "pix.g" importer->clearTempVars(); importer->setCurrentLineNumber(LT(0)->getLine()); importer->addNamedObjectToObjectGroup(name->getText()); *dbg << " GROUP MEMBER " << name->getLine() << std::endl; -#line 2712 "PIXCfgParser.cpp" +#line 2723 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -2722,7 +2733,6 @@ void PIXCfgParser::group_object() { } void PIXCfgParser::network_object() { - Tracer traceInOut(this, "network_object"); ANTLR_USE_NAMESPACE(antlr)RefToken a = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken nm = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken v6 = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -2733,12 +2743,12 @@ void PIXCfgParser::network_object() { try { // for error handling match(NETWORK_OBJECT); if ( inputState->guessing==0 ) { -#line 518 "pix.g" +#line 523 "pix.g" importer->clearTempVars(); importer->setCurrentLineNumber(LT(0)->getLine()); -#line 2742 "PIXCfgParser.cpp" +#line 2752 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -2770,7 +2780,7 @@ void PIXCfgParser::network_object() { } } if ( inputState->guessing==0 ) { -#line 524 "pix.g" +#line 529 "pix.g" if (a) { @@ -2786,7 +2796,7 @@ void PIXCfgParser::network_object() { consumeUntil(NEWLINE); } -#line 2790 "PIXCfgParser.cpp" +#line 2800 "PIXCfgParser.cpp" } break; } @@ -2814,7 +2824,7 @@ void PIXCfgParser::network_object() { } } if ( inputState->guessing==0 ) { -#line 541 "pix.g" +#line 546 "pix.g" if (h) { @@ -2830,7 +2840,7 @@ void PIXCfgParser::network_object() { consumeUntil(NEWLINE); } -#line 2834 "PIXCfgParser.cpp" +#line 2844 "PIXCfgParser.cpp" } break; } @@ -2840,12 +2850,12 @@ void PIXCfgParser::network_object() { name = LT(1); match(WORD); if ( inputState->guessing==0 ) { -#line 558 "pix.g" +#line 563 "pix.g" importer->addNamedObjectToObjectGroup(name->getText()); *dbg << " GROUP MEMBER " << name->getLine() << std::endl; -#line 2849 "PIXCfgParser.cpp" +#line 2859 "PIXCfgParser.cpp" } break; } @@ -2867,7 +2877,6 @@ void PIXCfgParser::network_object() { } void PIXCfgParser::object_group_protocol_parameters() { - Tracer traceInOut(this, "object_group_protocol_parameters"); try { // for error handling { @@ -2898,7 +2907,7 @@ void PIXCfgParser::object_group_protocol_parameters() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_17); + recover(ex,_tokenSet_18); } else { throw; } @@ -2906,18 +2915,17 @@ void PIXCfgParser::object_group_protocol_parameters() { } void PIXCfgParser::protocol_object() { - Tracer traceInOut(this, "protocol_object"); ANTLR_USE_NAMESPACE(antlr)RefToken name = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling match(PROTOCOL_OBJECT); if ( inputState->guessing==0 ) { -#line 592 "pix.g" +#line 597 "pix.g" importer->clearTempVars(); importer->setCurrentLineNumber(LT(0)->getLine()); -#line 2921 "PIXCfgParser.cpp" +#line 2929 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -2989,14 +2997,14 @@ void PIXCfgParser::protocol_object() { } } if ( inputState->guessing==0 ) { -#line 598 "pix.g" +#line 603 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->protocol = LT(0)->getText(); importer->addIPServiceToObjectGroup(); *dbg << " GROUP MEMBER " << LT(0)->getText() << " "; -#line 3000 "PIXCfgParser.cpp" +#line 3008 "PIXCfgParser.cpp" } break; } @@ -3004,13 +3012,13 @@ void PIXCfgParser::protocol_object() { { match(ICMP6); if ( inputState->guessing==0 ) { -#line 606 "pix.g" +#line 611 "pix.g" importer->addMessageToLog( "Parser warning: IPv6 import is not supported. "); consumeUntil(NEWLINE); -#line 3014 "PIXCfgParser.cpp" +#line 3022 "PIXCfgParser.cpp" } break; } @@ -3020,12 +3028,12 @@ void PIXCfgParser::protocol_object() { name = LT(1); match(WORD); if ( inputState->guessing==0 ) { -#line 613 "pix.g" +#line 618 "pix.g" importer->addNamedObjectToObjectGroup(name->getText()); *dbg << " GROUP MEMBER " << name->getLine() << std::endl; -#line 3029 "PIXCfgParser.cpp" +#line 3037 "PIXCfgParser.cpp" } break; } @@ -3047,7 +3055,6 @@ void PIXCfgParser::protocol_object() { } void PIXCfgParser::object_group_icmp_parameters() { - Tracer traceInOut(this, "object_group_icmp_parameters"); try { // for error handling { @@ -3078,7 +3085,7 @@ void PIXCfgParser::object_group_icmp_parameters() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_18); + recover(ex,_tokenSet_19); } else { throw; } @@ -3086,19 +3093,18 @@ void PIXCfgParser::object_group_icmp_parameters() { } void PIXCfgParser::icmp_object() { - Tracer traceInOut(this, "icmp_object"); ANTLR_USE_NAMESPACE(antlr)RefToken icmp_type = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken name = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling match(ICMP_OBJECT); if ( inputState->guessing==0 ) { -#line 660 "pix.g" +#line 665 "pix.g" importer->clearTempVars(); importer->setCurrentLineNumber(LT(0)->getLine()); -#line 3102 "PIXCfgParser.cpp" +#line 3108 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -3130,11 +3136,11 @@ void PIXCfgParser::icmp_object() { icmp_type = LT(1); match(INT_CONST); if ( inputState->guessing==0 ) { -#line 667 "pix.g" +#line 672 "pix.g" importer->icmp_type = LT(0)->getText(); -#line 3138 "PIXCfgParser.cpp" +#line 3144 "PIXCfgParser.cpp" } break; } @@ -3160,11 +3166,11 @@ void PIXCfgParser::icmp_object() { { icmp_names(); if ( inputState->guessing==0 ) { -#line 672 "pix.g" +#line 677 "pix.g" importer->icmp_spec = LT(0)->getText(); -#line 3168 "PIXCfgParser.cpp" +#line 3174 "PIXCfgParser.cpp" } break; } @@ -3175,12 +3181,12 @@ void PIXCfgParser::icmp_object() { } } if ( inputState->guessing==0 ) { -#line 676 "pix.g" +#line 681 "pix.g" importer->addICMPServiceToObjectGroup(); *dbg << " SERVICE ICMP " << LT(0)->getText() << " "; -#line 3184 "PIXCfgParser.cpp" +#line 3190 "PIXCfgParser.cpp" } break; } @@ -3190,12 +3196,12 @@ void PIXCfgParser::icmp_object() { name = LT(1); match(WORD); if ( inputState->guessing==0 ) { -#line 682 "pix.g" +#line 687 "pix.g" importer->addNamedObjectToObjectGroup(name->getText()); *dbg << " GROUP MEMBER " << name->getLine() << std::endl; -#line 3199 "PIXCfgParser.cpp" +#line 3205 "PIXCfgParser.cpp" } break; } @@ -3217,7 +3223,6 @@ void PIXCfgParser::icmp_object() { } void PIXCfgParser::object_group_service_parameters() { - Tracer traceInOut(this, "object_group_service_parameters"); try { // for error handling { @@ -3253,7 +3258,7 @@ void PIXCfgParser::object_group_service_parameters() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_19); + recover(ex,_tokenSet_20); } else { throw; } @@ -3261,19 +3266,18 @@ void PIXCfgParser::object_group_service_parameters() { } void PIXCfgParser::service_object() { - Tracer traceInOut(this, "service_object"); ANTLR_USE_NAMESPACE(antlr)RefToken icmp_type = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken name = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling match(SERVICE_OBJECT); if ( inputState->guessing==0 ) { -#line 721 "pix.g" +#line 726 "pix.g" importer->clearTempVars(); importer->setCurrentLineNumber(LT(0)->getLine()); -#line 3277 "PIXCfgParser.cpp" +#line 3281 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -3327,14 +3331,14 @@ void PIXCfgParser::service_object() { } } if ( inputState->guessing==0 ) { -#line 727 "pix.g" +#line 732 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->protocol = LT(0)->getText(); importer->addIPServiceToObjectGroup(); *dbg << " GROUP MEMBER " << LT(0)->getText() << " "; -#line 3338 "PIXCfgParser.cpp" +#line 3342 "PIXCfgParser.cpp" } break; } @@ -3366,12 +3370,12 @@ void PIXCfgParser::service_object() { } } if ( inputState->guessing==0 ) { -#line 735 "pix.g" +#line 740 "pix.g" importer->protocol = LT(0)->getText(); *dbg << " SERVICE TCP/UDP" << LT(0)->getText() << " "; -#line 3375 "PIXCfgParser.cpp" +#line 3379 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -3419,11 +3423,11 @@ void PIXCfgParser::service_object() { } } if ( inputState->guessing==0 ) { -#line 741 "pix.g" +#line 746 "pix.g" importer->addTCPUDPServiceToObjectGroup(); -#line 3427 "PIXCfgParser.cpp" +#line 3431 "PIXCfgParser.cpp" } break; } @@ -3437,11 +3441,11 @@ void PIXCfgParser::service_object() { icmp_type = LT(1); match(INT_CONST); if ( inputState->guessing==0 ) { -#line 748 "pix.g" +#line 753 "pix.g" importer->icmp_type = LT(0)->getText(); -#line 3445 "PIXCfgParser.cpp" +#line 3449 "PIXCfgParser.cpp" } break; } @@ -3467,11 +3471,11 @@ void PIXCfgParser::service_object() { { icmp_names(); if ( inputState->guessing==0 ) { -#line 753 "pix.g" +#line 758 "pix.g" importer->icmp_spec = LT(0)->getText(); -#line 3475 "PIXCfgParser.cpp" +#line 3479 "PIXCfgParser.cpp" } break; } @@ -3482,12 +3486,12 @@ void PIXCfgParser::service_object() { } } if ( inputState->guessing==0 ) { -#line 757 "pix.g" +#line 762 "pix.g" importer->addICMPServiceToObjectGroup(); *dbg << " SERVICE ICMP " << LT(0)->getText() << " "; -#line 3491 "PIXCfgParser.cpp" +#line 3495 "PIXCfgParser.cpp" } break; } @@ -3497,12 +3501,12 @@ void PIXCfgParser::service_object() { name = LT(1); match(WORD); if ( inputState->guessing==0 ) { -#line 763 "pix.g" +#line 768 "pix.g" importer->addNamedObjectToObjectGroup(name->getText()); *dbg << " GROUP MEMBER " << name->getLine() << std::endl; -#line 3506 "PIXCfgParser.cpp" +#line 3510 "PIXCfgParser.cpp" } break; } @@ -3524,19 +3528,18 @@ void PIXCfgParser::service_object() { } void PIXCfgParser::port_object() { - Tracer traceInOut(this, "port_object"); -#line 770 "pix.g" +#line 775 "pix.g" importer->tmp_port_spec = ""; importer->tmp_port_spec_2 = ""; -#line 3534 "PIXCfgParser.cpp" +#line 3537 "PIXCfgParser.cpp" try { // for error handling match(PORT_OBJECT); xoperator(); if ( inputState->guessing==0 ) { -#line 775 "pix.g" +#line 780 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); *dbg << " PORT OBJECT TCP/UDP " << LT(0)->getText() << " " << std::endl; @@ -3544,7 +3547,7 @@ void PIXCfgParser::port_object() { importer->addTCPUDPServiceToObjectGroup(); *dbg << std::endl; -#line 3548 "PIXCfgParser.cpp" +#line 3551 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -3558,7 +3561,6 @@ void PIXCfgParser::port_object() { } void PIXCfgParser::permit_extended() { - Tracer traceInOut(this, "permit_extended"); try { // for error handling { @@ -3580,23 +3582,23 @@ void PIXCfgParser::permit_extended() { } match(PERMIT); if ( inputState->guessing==0 ) { -#line 877 "pix.g" +#line 889 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->newPolicyRule(); importer->action = "permit"; *dbg << LT(1)->getLine() << ":" << " permit "; -#line 3591 "PIXCfgParser.cpp" +#line 3593 "PIXCfgParser.cpp" } rule_extended(); match(NEWLINE); if ( inputState->guessing==0 ) { -#line 884 "pix.g" +#line 896 "pix.g" importer->pushRule(); -#line 3600 "PIXCfgParser.cpp" +#line 3602 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -3610,7 +3612,6 @@ void PIXCfgParser::permit_extended() { } void PIXCfgParser::deny_extended() { - Tracer traceInOut(this, "deny_extended"); try { // for error handling { @@ -3632,23 +3633,23 @@ void PIXCfgParser::deny_extended() { } match(DENY); if ( inputState->guessing==0 ) { -#line 890 "pix.g" +#line 902 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->newPolicyRule(); importer->action = "deny"; *dbg << LT(1)->getLine() << ":" << " deny "; -#line 3643 "PIXCfgParser.cpp" +#line 3644 "PIXCfgParser.cpp" } rule_extended(); match(NEWLINE); if ( inputState->guessing==0 ) { -#line 897 "pix.g" +#line 909 "pix.g" importer->pushRule(); -#line 3652 "PIXCfgParser.cpp" +#line 3653 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -3662,13 +3663,12 @@ void PIXCfgParser::deny_extended() { } void PIXCfgParser::permit_standard() { - Tracer traceInOut(this, "permit_standard"); try { // for error handling match(STANDARD); match(PERMIT); if ( inputState->guessing==0 ) { -#line 903 "pix.g" +#line 915 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->newPolicyRule(); @@ -3680,7 +3680,7 @@ void PIXCfgParser::permit_standard() { rule_standard(); match(NEWLINE); if ( inputState->guessing==0 ) { -#line 910 "pix.g" +#line 922 "pix.g" importer->pushRule(); @@ -3698,29 +3698,28 @@ void PIXCfgParser::permit_standard() { } void PIXCfgParser::deny_standard() { - Tracer traceInOut(this, "deny_standard"); try { // for error handling match(STANDARD); match(DENY); if ( inputState->guessing==0 ) { -#line 916 "pix.g" +#line 928 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->newPolicyRule(); importer->action = "deny"; *dbg << LT(1)->getLine() << ":" << " deny "; -#line 3715 "PIXCfgParser.cpp" +#line 3714 "PIXCfgParser.cpp" } rule_standard(); match(NEWLINE); if ( inputState->guessing==0 ) { -#line 923 "pix.g" +#line 935 "pix.g" importer->pushRule(); -#line 3724 "PIXCfgParser.cpp" +#line 3723 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -3734,12 +3733,11 @@ void PIXCfgParser::deny_standard() { } void PIXCfgParser::remark() { - Tracer traceInOut(this, "remark"); try { // for error handling match(REMARK); if ( inputState->guessing==0 ) { -#line 1764 "pix.g" +#line 1782 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); *dbg << LT(1)->getLine() << ":"; @@ -3753,7 +3751,7 @@ void PIXCfgParser::remark() { *dbg << " REMARK " << rem << std::endl; //consumeUntil(NEWLINE); -#line 3757 "PIXCfgParser.cpp" +#line 3755 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -3767,7 +3765,6 @@ void PIXCfgParser::remark() { } void PIXCfgParser::rule_extended() { - Tracer traceInOut(this, "rule_extended"); try { // for error handling { @@ -3794,15 +3791,15 @@ void PIXCfgParser::rule_extended() { ip_protocols(); hostaddr_expr(); if ( inputState->guessing==0 ) { -#line 948 "pix.g" +#line 960 "pix.g" importer->SaveTmpAddrToSrc(); *dbg << "(src) "; -#line 3800 "PIXCfgParser.cpp" +#line 3797 "PIXCfgParser.cpp" } hostaddr_expr(); if ( inputState->guessing==0 ) { -#line 949 "pix.g" +#line 961 "pix.g" importer->SaveTmpAddrToDst(); *dbg << "(dst) "; -#line 3806 "PIXCfgParser.cpp" +#line 3803 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -3867,24 +3864,24 @@ void PIXCfgParser::rule_extended() { { match(ICMP); if ( inputState->guessing==0 ) { -#line 955 "pix.g" +#line 967 "pix.g" importer->protocol = LT(0)->getText(); *dbg << "protocol " << LT(0)->getText() << " "; -#line 3876 "PIXCfgParser.cpp" +#line 3873 "PIXCfgParser.cpp" } hostaddr_expr(); if ( inputState->guessing==0 ) { -#line 959 "pix.g" +#line 971 "pix.g" importer->SaveTmpAddrToSrc(); *dbg << "(src) "; -#line 3882 "PIXCfgParser.cpp" +#line 3879 "PIXCfgParser.cpp" } hostaddr_expr(); if ( inputState->guessing==0 ) { -#line 960 "pix.g" +#line 972 "pix.g" importer->SaveTmpAddrToDst(); *dbg << "(dst) "; -#line 3888 "PIXCfgParser.cpp" +#line 3885 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -3998,11 +3995,11 @@ void PIXCfgParser::rule_extended() { } } if ( inputState->guessing==0 ) { -#line 968 "pix.g" +#line 980 "pix.g" *dbg << std::endl; -#line 4006 "PIXCfgParser.cpp" +#line 4003 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -4016,26 +4013,25 @@ void PIXCfgParser::rule_extended() { } void PIXCfgParser::rule_standard() { - Tracer traceInOut(this, "rule_standard"); try { // for error handling if ( inputState->guessing==0 ) { -#line 933 "pix.g" +#line 945 "pix.g" importer->tmp_a = "0.0.0.0"; importer->tmp_nm = "0.0.0.0"; importer->SaveTmpAddrToSrc(); -#line 4030 "PIXCfgParser.cpp" +#line 4026 "PIXCfgParser.cpp" } hostaddr_expr(); if ( inputState->guessing==0 ) { -#line 939 "pix.g" +#line 951 "pix.g" importer->SaveTmpAddrToDst(); *dbg << "(dst) " << std::endl; -#line 4039 "PIXCfgParser.cpp" +#line 4035 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -4049,7 +4045,6 @@ void PIXCfgParser::rule_standard() { } void PIXCfgParser::hostaddr_expr() { - Tracer traceInOut(this, "hostaddr_expr"); ANTLR_USE_NAMESPACE(antlr)RefToken name = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken h = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken a = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -4062,13 +4057,13 @@ void PIXCfgParser::hostaddr_expr() { match(INTRFACE); interface_label(); if ( inputState->guessing==0 ) { -#line 1209 "pix.g" +#line 1221 "pix.g" importer->tmp_a = LT(0)->getText(); importer->tmp_nm = "interface"; *dbg << "object " << LT(0)->getText() << " "; -#line 4072 "PIXCfgParser.cpp" +#line 4067 "PIXCfgParser.cpp" } break; } @@ -4098,13 +4093,13 @@ void PIXCfgParser::hostaddr_expr() { match(WORD); } if ( inputState->guessing==0 ) { -#line 1216 "pix.g" +#line 1228 "pix.g" importer->tmp_a = name->getText(); importer->tmp_nm = ""; *dbg << "object " << name->getText() << " "; -#line 4108 "PIXCfgParser.cpp" +#line 4103 "PIXCfgParser.cpp" } break; } @@ -4116,13 +4111,13 @@ void PIXCfgParser::hostaddr_expr() { match(IPV4); } if ( inputState->guessing==0 ) { -#line 1223 "pix.g" +#line 1235 "pix.g" importer->tmp_a = h->getText(); importer->tmp_nm = "255.255.255.255"; *dbg << h->getText() << "/255.255.255.255"; -#line 4126 "PIXCfgParser.cpp" +#line 4121 "PIXCfgParser.cpp" } break; } @@ -4135,13 +4130,13 @@ void PIXCfgParser::hostaddr_expr() { match(IPV4); } if ( inputState->guessing==0 ) { -#line 1230 "pix.g" +#line 1242 "pix.g" importer->tmp_a = a->getText(); importer->tmp_nm = m->getText(); *dbg << a->getText() << "/" << m->getText(); -#line 4145 "PIXCfgParser.cpp" +#line 4140 "PIXCfgParser.cpp" } break; } @@ -4149,13 +4144,13 @@ void PIXCfgParser::hostaddr_expr() { { match(ANY); if ( inputState->guessing==0 ) { -#line 1237 "pix.g" +#line 1249 "pix.g" importer->tmp_a = "0.0.0.0"; importer->tmp_nm = "0.0.0.0"; *dbg << "0.0.0.0/0.0.0.0"; -#line 4159 "PIXCfgParser.cpp" +#line 4154 "PIXCfgParser.cpp" } break; } @@ -4168,7 +4163,7 @@ void PIXCfgParser::hostaddr_expr() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_20); + recover(ex,_tokenSet_21); } else { throw; } @@ -4176,7 +4171,6 @@ void PIXCfgParser::hostaddr_expr() { } void PIXCfgParser::ip_protocols() { - Tracer traceInOut(this, "ip_protocols"); ANTLR_USE_NAMESPACE(antlr)RefToken name = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -4232,12 +4226,12 @@ void PIXCfgParser::ip_protocols() { } } if ( inputState->guessing==0 ) { -#line 1156 "pix.g" +#line 1168 "pix.g" importer->protocol = LT(0)->getText(); *dbg << "protocol " << LT(0)->getText() << " "; -#line 4241 "PIXCfgParser.cpp" +#line 4235 "PIXCfgParser.cpp" } break; } @@ -4267,12 +4261,12 @@ void PIXCfgParser::ip_protocols() { match(WORD); } if ( inputState->guessing==0 ) { -#line 1162 "pix.g" +#line 1174 "pix.g" importer->protocol = name->getText(); *dbg << "protocol " << name->getText() << " "; -#line 4276 "PIXCfgParser.cpp" +#line 4270 "PIXCfgParser.cpp" } break; } @@ -4283,33 +4277,6 @@ void PIXCfgParser::ip_protocols() { } } } - catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { - if( inputState->guessing == 0 ) { - reportError(ex); - recover(ex,_tokenSet_21); - } else { - throw; - } - } -} - -void PIXCfgParser::time_range() { - Tracer traceInOut(this, "time_range"); - ANTLR_USE_NAMESPACE(antlr)RefToken tr_name = ANTLR_USE_NAMESPACE(antlr)nullToken; - - try { // for error handling - match(TIME_RANGE); - tr_name = LT(1); - match(WORD); - if ( inputState->guessing==0 ) { -#line 1289 "pix.g" - - importer->time_range_name = tr_name->getText(); - *dbg << "time_range " << tr_name->getText() << " "; - -#line 4311 "PIXCfgParser.cpp" - } - } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); @@ -4320,18 +4287,20 @@ void PIXCfgParser::time_range() { } } -void PIXCfgParser::fragments() { - Tracer traceInOut(this, "fragments"); +void PIXCfgParser::time_range() { + ANTLR_USE_NAMESPACE(antlr)RefToken tr_name = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling - match(FRAGMENTS); + match(TIME_RANGE); + tr_name = LT(1); + match(WORD); if ( inputState->guessing==0 ) { -#line 1282 "pix.g" +#line 1301 "pix.g" - importer->fragments = true; - *dbg << "fragments "; + importer->time_range_name = tr_name->getText(); + *dbg << "time_range " << tr_name->getText() << " "; -#line 4335 "PIXCfgParser.cpp" +#line 4304 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -4344,8 +4313,30 @@ void PIXCfgParser::fragments() { } } +void PIXCfgParser::fragments() { + + try { // for error handling + match(FRAGMENTS); + if ( inputState->guessing==0 ) { +#line 1294 "pix.g" + + importer->fragments = true; + *dbg << "fragments "; + +#line 4327 "PIXCfgParser.cpp" + } + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { + if( inputState->guessing == 0 ) { + reportError(ex); + recover(ex,_tokenSet_24); + } else { + throw; + } + } +} + void PIXCfgParser::log() { - Tracer traceInOut(this, "log"); try { // for error handling { @@ -4367,11 +4358,11 @@ void PIXCfgParser::log() { } } if ( inputState->guessing==0 ) { -#line 1248 "pix.g" +#line 1260 "pix.g" importer->logging = true; -#line 4375 "PIXCfgParser.cpp" +#line 4366 "PIXCfgParser.cpp" } { { @@ -4452,9 +4443,9 @@ void PIXCfgParser::log() { } } if ( inputState->guessing==0 ) { -#line 1265 "pix.g" +#line 1277 "pix.g" importer->log_level = LT(0)->getText(); -#line 4458 "PIXCfgParser.cpp" +#line 4449 "PIXCfgParser.cpp" } break; } @@ -4478,9 +4469,9 @@ void PIXCfgParser::log() { match(INT_CONST); } if ( inputState->guessing==0 ) { -#line 1270 "pix.g" +#line 1282 "pix.g" importer->log_interval = LT(0)->getText(); -#line 4484 "PIXCfgParser.cpp" +#line 4475 "PIXCfgParser.cpp" } break; } @@ -4496,14 +4487,14 @@ void PIXCfgParser::log() { } } if ( inputState->guessing==0 ) { -#line 1273 "pix.g" +#line 1285 "pix.g" // if (importer->log_level == "log") importer->log_level = ""; // if (importer->log_interval == "log") importer->log_interval = ""; *dbg << "logging level '" << importer->log_level << "' interval '" << importer->log_interval << "'"; -#line 4507 "PIXCfgParser.cpp" +#line 4498 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -4517,7 +4508,6 @@ void PIXCfgParser::log() { } void PIXCfgParser::icmp_spec() { - Tracer traceInOut(this, "icmp_spec"); ANTLR_USE_NAMESPACE(antlr)RefToken icmp_type = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken icmp_code = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -4533,7 +4523,7 @@ void PIXCfgParser::icmp_spec() { match(INT_CONST); } if ( inputState->guessing==0 ) { -#line 1172 "pix.g" +#line 1184 "pix.g" importer->icmp_type = icmp_type->getText(); importer->icmp_code = icmp_code->getText(); @@ -4541,7 +4531,7 @@ void PIXCfgParser::icmp_spec() { *dbg << icmp_type->getText() << " " << icmp_code->getText() << " "; -#line 4545 "PIXCfgParser.cpp" +#line 4535 "PIXCfgParser.cpp" } break; } @@ -4567,12 +4557,12 @@ void PIXCfgParser::icmp_spec() { { icmp_names(); if ( inputState->guessing==0 ) { -#line 1181 "pix.g" +#line 1193 "pix.g" importer->icmp_spec = LT(0)->getText(); *dbg << LT(0)->getText() << " "; -#line 4576 "PIXCfgParser.cpp" +#line 4566 "PIXCfgParser.cpp" } break; } @@ -4586,7 +4576,7 @@ void PIXCfgParser::icmp_spec() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_13); + recover(ex,_tokenSet_14); } else { throw; } @@ -4594,7 +4584,6 @@ void PIXCfgParser::icmp_spec() { } void PIXCfgParser::tcp_udp_rule_extended() { - Tracer traceInOut(this, "tcp_udp_rule_extended"); ANTLR_USE_NAMESPACE(antlr)RefToken src_grp_name = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken dst_addr_name = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -4618,24 +4607,24 @@ void PIXCfgParser::tcp_udp_rule_extended() { } } if ( inputState->guessing==0 ) { -#line 975 "pix.g" +#line 987 "pix.g" importer->protocol = LT(0)->getText(); *dbg << "protocol " << LT(0)->getText() << " "; -#line 4627 "PIXCfgParser.cpp" +#line 4616 "PIXCfgParser.cpp" } hostaddr_expr(); if ( inputState->guessing==0 ) { -#line 979 "pix.g" +#line 991 "pix.g" importer->SaveTmpAddrToSrc(); *dbg << "(src) "; -#line 4633 "PIXCfgParser.cpp" +#line 4622 "PIXCfgParser.cpp" } { - bool synPredMatched123 = false; - if (((_tokenSet_21.member(LA(1))) && (_tokenSet_24.member(LA(2))))) { - int _m123 = mark(); - synPredMatched123 = true; + bool synPredMatched124 = false; + if (((_tokenSet_22.member(LA(1))) && (_tokenSet_25.member(LA(2))))) { + int _m124 = mark(); + synPredMatched124 = true; inputState->guessing++; try { { @@ -4643,46 +4632,46 @@ void PIXCfgParser::tcp_udp_rule_extended() { } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) { - synPredMatched123 = false; + synPredMatched124 = false; } - rewind(_m123); + rewind(_m124); inputState->guessing--; } - if ( synPredMatched123 ) { + if ( synPredMatched124 ) { { if (((LA(1) == OBJECT_GROUP) && (LA(2) == WORD))&&( importer->isKnownServiceGroupName(LT(2)->getText()) )) { match(OBJECT_GROUP); src_grp_name = LT(1); match(WORD); if ( inputState->guessing==0 ) { -#line 989 "pix.g" +#line 1001 "pix.g" importer->src_port_spec = src_grp_name->getText(); *dbg << "src port spec: " << src_grp_name->getText() << std::endl; -#line 4665 "PIXCfgParser.cpp" +#line 4654 "PIXCfgParser.cpp" } hostaddr_expr_1(); if ( inputState->guessing==0 ) { -#line 997 "pix.g" +#line 1009 "pix.g" importer->SaveTmpAddrToDst(); *dbg << "(dst) "; -#line 4674 "PIXCfgParser.cpp" +#line 4663 "PIXCfgParser.cpp" } acl_tcp_udp_dst_port_spec(); } - else if ((_tokenSet_21.member(LA(1))) && (_tokenSet_24.member(LA(2)))) { + else if ((_tokenSet_22.member(LA(1))) && (_tokenSet_25.member(LA(2)))) { hostaddr_expr_2(); if ( inputState->guessing==0 ) { -#line 1006 "pix.g" +#line 1018 "pix.g" importer->SaveTmpAddrToDst(); *dbg << "(dst) "; -#line 4686 "PIXCfgParser.cpp" +#line 4675 "PIXCfgParser.cpp" } acl_tcp_udp_dst_port_spec(); } @@ -4697,10 +4686,10 @@ void PIXCfgParser::tcp_udp_rule_extended() { dst_addr_name = LT(1); match(WORD); { - if ((_tokenSet_25.member(LA(1))) && (_tokenSet_26.member(LA(2)))) { + if ((_tokenSet_26.member(LA(1))) && (_tokenSet_27.member(LA(2)))) { acl_xoperator_dst(); } - else if ((_tokenSet_27.member(LA(1))) && (_tokenSet_28.member(LA(2)))) { + else if ((_tokenSet_28.member(LA(1))) && (_tokenSet_29.member(LA(2)))) { } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); @@ -4708,10 +4697,10 @@ void PIXCfgParser::tcp_udp_rule_extended() { } { - if ((LA(1) == ESTABLISHED) && (_tokenSet_27.member(LA(2)))) { + if ((LA(1) == ESTABLISHED) && (_tokenSet_28.member(LA(2)))) { established(); } - else if ((_tokenSet_27.member(LA(1))) && (_tokenSet_29.member(LA(2)))) { + else if ((_tokenSet_28.member(LA(1))) && (_tokenSet_30.member(LA(2)))) { } else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); @@ -4719,7 +4708,7 @@ void PIXCfgParser::tcp_udp_rule_extended() { } if ( inputState->guessing==0 ) { -#line 1015 "pix.g" +#line 1027 "pix.g" // looks like "object foo" at this point can only be dest addr. // (judging by cli prompts on 8.3) @@ -4728,11 +4717,11 @@ void PIXCfgParser::tcp_udp_rule_extended() { importer->SaveTmpAddrToDst(); *dbg << "dst addr object " << dst_addr_name->getText() << " "; -#line 4732 "PIXCfgParser.cpp" +#line 4721 "PIXCfgParser.cpp" } acl_tcp_udp_dst_port_spec(); } - else if ((_tokenSet_30.member(LA(1))) && (_tokenSet_31.member(LA(2)))) { + else if ((_tokenSet_31.member(LA(1))) && (_tokenSet_32.member(LA(2)))) { { switch ( LA(1)) { case RANGE: @@ -4743,11 +4732,11 @@ void PIXCfgParser::tcp_udp_rule_extended() { { xoperator(); if ( inputState->guessing==0 ) { -#line 1029 "pix.g" +#line 1041 "pix.g" importer->SaveTmpPortToSrc(); -#line 4751 "PIXCfgParser.cpp" +#line 4740 "PIXCfgParser.cpp" } break; } @@ -4768,9 +4757,9 @@ void PIXCfgParser::tcp_udp_rule_extended() { } hostaddr_expr_3(); if ( inputState->guessing==0 ) { -#line 1033 "pix.g" +#line 1045 "pix.g" importer->SaveTmpAddrToDst(); *dbg << "(dst) "; -#line 4774 "PIXCfgParser.cpp" +#line 4763 "PIXCfgParser.cpp" } acl_tcp_udp_dst_port_spec(); } @@ -4848,7 +4837,6 @@ void PIXCfgParser::tcp_udp_rule_extended() { } void PIXCfgParser::hostaddr_expr_1() { - Tracer traceInOut(this, "hostaddr_expr_1"); try { // for error handling hostaddr_expr(); @@ -4856,7 +4844,7 @@ void PIXCfgParser::hostaddr_expr_1() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_27); + recover(ex,_tokenSet_28); } else { throw; } @@ -4864,7 +4852,6 @@ void PIXCfgParser::hostaddr_expr_1() { } void PIXCfgParser::acl_tcp_udp_dst_port_spec() { - Tracer traceInOut(this, "acl_tcp_udp_dst_port_spec"); ANTLR_USE_NAMESPACE(antlr)RefToken dst_port_group_name = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken dst_port_obj_name = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -4878,13 +4865,13 @@ void PIXCfgParser::acl_tcp_udp_dst_port_spec() { dst_port_group_name = LT(1); match(WORD); if ( inputState->guessing==0 ) { -#line 1051 "pix.g" +#line 1063 "pix.g" importer->dst_port_spec = dst_port_group_name->getText(); *dbg << "dst port spec: " << dst_port_group_name->getText() << std::endl; -#line 4888 "PIXCfgParser.cpp" +#line 4875 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -4916,13 +4903,13 @@ void PIXCfgParser::acl_tcp_udp_dst_port_spec() { dst_port_obj_name = LT(1); match(WORD); if ( inputState->guessing==0 ) { -#line 1061 "pix.g" +#line 1073 "pix.g" importer->dst_port_spec = dst_port_obj_name->getText(); *dbg << "dst addr object " << dst_port_obj_name->getText() << std::endl; -#line 4926 "PIXCfgParser.cpp" +#line 4913 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -5018,7 +5005,7 @@ void PIXCfgParser::acl_tcp_udp_dst_port_spec() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_13); + recover(ex,_tokenSet_14); } else { throw; } @@ -5026,7 +5013,6 @@ void PIXCfgParser::acl_tcp_udp_dst_port_spec() { } void PIXCfgParser::hostaddr_expr_2() { - Tracer traceInOut(this, "hostaddr_expr_2"); try { // for error handling hostaddr_expr(); @@ -5034,7 +5020,7 @@ void PIXCfgParser::hostaddr_expr_2() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_27); + recover(ex,_tokenSet_28); } else { throw; } @@ -5042,22 +5028,21 @@ void PIXCfgParser::hostaddr_expr_2() { } void PIXCfgParser::acl_xoperator_dst() { - Tracer traceInOut(this, "acl_xoperator_dst"); try { // for error handling xoperator(); if ( inputState->guessing==0 ) { -#line 1076 "pix.g" +#line 1088 "pix.g" importer->SaveTmpPortToDst(); -#line 5055 "PIXCfgParser.cpp" +#line 5040 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_27); + recover(ex,_tokenSet_28); } else { throw; } @@ -5065,23 +5050,22 @@ void PIXCfgParser::acl_xoperator_dst() { } void PIXCfgParser::established() { - Tracer traceInOut(this, "established"); try { // for error handling match(ESTABLISHED); if ( inputState->guessing==0 ) { -#line 1145 "pix.g" +#line 1157 "pix.g" importer->established = true; *dbg << "established "; -#line 5079 "PIXCfgParser.cpp" +#line 5063 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_27); + recover(ex,_tokenSet_28); } else { throw; } @@ -5089,7 +5073,6 @@ void PIXCfgParser::established() { } void PIXCfgParser::hostaddr_expr_3() { - Tracer traceInOut(this, "hostaddr_expr_3"); try { // for error handling hostaddr_expr(); @@ -5097,7 +5080,7 @@ void PIXCfgParser::hostaddr_expr_3() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_27); + recover(ex,_tokenSet_28); } else { throw; } @@ -5105,7 +5088,6 @@ void PIXCfgParser::hostaddr_expr_3() { } void PIXCfgParser::single_port_op() { - Tracer traceInOut(this, "single_port_op"); try { // for error handling { @@ -5137,19 +5119,19 @@ void PIXCfgParser::single_port_op() { } } if ( inputState->guessing==0 ) { -#line 1086 "pix.g" +#line 1098 "pix.g" importer->tmp_port_op = LT(0)->getText(); *dbg << LT(0)->getText() << " "; -#line 5146 "PIXCfgParser.cpp" +#line 5128 "PIXCfgParser.cpp" } port_spec(); } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_15); + recover(ex,_tokenSet_16); } else { throw; } @@ -5157,24 +5139,23 @@ void PIXCfgParser::single_port_op() { } void PIXCfgParser::port_range() { - Tracer traceInOut(this, "port_range"); try { // for error handling match(RANGE); pair_of_ports_spec(); if ( inputState->guessing==0 ) { -#line 1101 "pix.g" +#line 1113 "pix.g" importer->tmp_port_op = "range"; *dbg << "range " << importer->tmp_port_spec; -#line 5172 "PIXCfgParser.cpp" +#line 5153 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_15); + recover(ex,_tokenSet_16); } else { throw; } @@ -5182,23 +5163,22 @@ void PIXCfgParser::port_range() { } void PIXCfgParser::port_spec() { - Tracer traceInOut(this, "port_spec"); try { // for error handling tcp_udp_port_spec(); if ( inputState->guessing==0 ) { -#line 1094 "pix.g" +#line 1106 "pix.g" importer->tmp_port_spec = std::string(" ") + importer->tmp_port_spec_2; *dbg << LT(0)->getText() << " " << importer->tmp_port_spec; -#line 5196 "PIXCfgParser.cpp" +#line 5176 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_15); + recover(ex,_tokenSet_16); } else { throw; } @@ -5206,7 +5186,6 @@ void PIXCfgParser::port_spec() { } void PIXCfgParser::tcp_udp_port_spec() { - Tracer traceInOut(this, "tcp_udp_port_spec"); try { // for error handling { @@ -5238,17 +5217,17 @@ void PIXCfgParser::tcp_udp_port_spec() { } } if ( inputState->guessing==0 ) { -#line 1125 "pix.g" +#line 1137 "pix.g" importer->tmp_port_spec_2 = LT(0)->getText(); -#line 5246 "PIXCfgParser.cpp" +#line 5225 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_32); + recover(ex,_tokenSet_33); } else { throw; } @@ -5256,38 +5235,37 @@ void PIXCfgParser::tcp_udp_port_spec() { } void PIXCfgParser::pair_of_ports_spec() { - Tracer traceInOut(this, "pair_of_ports_spec"); try { // for error handling if ( inputState->guessing==0 ) { -#line 1108 "pix.g" +#line 1120 "pix.g" importer->tmp_port_spec_2 = ""; -#line 5268 "PIXCfgParser.cpp" +#line 5246 "PIXCfgParser.cpp" } tcp_udp_port_spec(); if ( inputState->guessing==0 ) { -#line 1112 "pix.g" +#line 1124 "pix.g" importer->tmp_port_spec += importer->tmp_port_spec_2; -#line 5276 "PIXCfgParser.cpp" +#line 5254 "PIXCfgParser.cpp" } tcp_udp_port_spec(); if ( inputState->guessing==0 ) { -#line 1116 "pix.g" +#line 1128 "pix.g" importer->tmp_port_spec += " "; importer->tmp_port_spec += importer->tmp_port_spec_2; -#line 5285 "PIXCfgParser.cpp" +#line 5263 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_15); + recover(ex,_tokenSet_16); } else { throw; } @@ -5295,7 +5273,6 @@ void PIXCfgParser::pair_of_ports_spec() { } void PIXCfgParser::tcp_udp_port_names() { - Tracer traceInOut(this, "tcp_udp_port_names"); try { // for error handling { @@ -5340,7 +5317,7 @@ void PIXCfgParser::tcp_udp_port_names() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_32); + recover(ex,_tokenSet_33); } else { throw; } @@ -5348,7 +5325,6 @@ void PIXCfgParser::tcp_udp_port_names() { } void PIXCfgParser::interface_command_6() { - Tracer traceInOut(this, "interface_command_6"); ANTLR_USE_NAMESPACE(antlr)RefToken in = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -5356,14 +5332,14 @@ void PIXCfgParser::interface_command_6() { match(WORD); pix6_interface_hw_speed(); if ( inputState->guessing==0 ) { -#line 1353 "pix.g" +#line 1365 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->newInterface( in->getText() ); *dbg << in->getLine() << ":" << " INTRFACE: " << in->getText() << std::endl; -#line 5367 "PIXCfgParser.cpp" +#line 5343 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -5377,43 +5353,42 @@ void PIXCfgParser::interface_command_6() { } void PIXCfgParser::interface_command_7() { - Tracer traceInOut(this, "interface_command_7"); ANTLR_USE_NAMESPACE(antlr)RefToken in = ANTLR_USE_NAMESPACE(antlr)nullToken; -#line 1361 "pix.g" +#line 1373 "pix.g" bool have_interface_parameters = false; -#line 5385 "PIXCfgParser.cpp" +#line 5360 "PIXCfgParser.cpp" try { // for error handling in = LT(1); match(WORD); match(NEWLINE); if ( inputState->guessing==0 ) { -#line 1362 "pix.g" +#line 1374 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); importer->newInterface( in->getText() ); *dbg << in->getLine() << ":" << " INTRFACE: " << in->getText() << std::endl; -#line 5399 "PIXCfgParser.cpp" +#line 5374 "PIXCfgParser.cpp" } { { // ( ... )* for (;;) { - if ((_tokenSet_33.member(LA(1)))) { + if ((_tokenSet_34.member(LA(1)))) { interface_parameters(); if ( inputState->guessing==0 ) { -#line 1369 "pix.g" +#line 1381 "pix.g" have_interface_parameters = true; -#line 5409 "PIXCfgParser.cpp" +#line 5384 "PIXCfgParser.cpp" } } else { - goto _loop189; + goto _loop190; } } - _loop189:; + _loop190:; } // ( ... )* { switch ( LA(1)) { @@ -5434,7 +5409,7 @@ void PIXCfgParser::interface_command_7() { } } if ( inputState->guessing==0 ) { -#line 1371 "pix.g" +#line 1383 "pix.g" if ( ! have_interface_parameters ) { @@ -5443,7 +5418,7 @@ void PIXCfgParser::interface_command_7() { << " EMPTY INTERFACE " << std::endl; } -#line 5447 "PIXCfgParser.cpp" +#line 5422 "PIXCfgParser.cpp" } } } @@ -5458,7 +5433,6 @@ void PIXCfgParser::interface_command_7() { } void PIXCfgParser::pix6_interface_hw_speed() { - Tracer traceInOut(this, "pix6_interface_hw_speed"); try { // for error handling { @@ -5531,15 +5505,14 @@ void PIXCfgParser::pix6_interface_hw_speed() { } void PIXCfgParser::interface_parameters() { - Tracer traceInOut(this, "interface_parameters"); try { // for error handling if ( inputState->guessing==0 ) { -#line 1406 "pix.g" +#line 1418 "pix.g" importer->setCurrentLineNumber(LT(0)->getLine()); -#line 5543 "PIXCfgParser.cpp" +#line 5516 "PIXCfgParser.cpp" } { switch ( LA(1)) { @@ -5612,7 +5585,7 @@ void PIXCfgParser::interface_parameters() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_34); + recover(ex,_tokenSet_35); } else { throw; } @@ -5620,7 +5593,6 @@ void PIXCfgParser::interface_parameters() { } void PIXCfgParser::intf_address() { - Tracer traceInOut(this, "intf_address"); try { // for error handling match(IP); @@ -5656,7 +5628,6 @@ void PIXCfgParser::intf_address() { } void PIXCfgParser::vlan_interface() { - Tracer traceInOut(this, "vlan_interface"); ANTLR_USE_NAMESPACE(antlr)RefToken vlan_id = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -5664,12 +5635,12 @@ void PIXCfgParser::vlan_interface() { vlan_id = LT(1); match(INT_CONST); if ( inputState->guessing==0 ) { -#line 1432 "pix.g" +#line 1444 "pix.g" importer->setInterfaceVlanId(vlan_id->getText()); *dbg << " VLAN: " << vlan_id->getText() << std::endl; -#line 5673 "PIXCfgParser.cpp" +#line 5644 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -5683,7 +5654,6 @@ void PIXCfgParser::vlan_interface() { } void PIXCfgParser::sec_level() { - Tracer traceInOut(this, "sec_level"); ANTLR_USE_NAMESPACE(antlr)RefToken sec_level = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -5691,12 +5661,12 @@ void PIXCfgParser::sec_level() { sec_level = LT(1); match(INT_CONST); if ( inputState->guessing==0 ) { -#line 1484 "pix.g" +#line 1496 "pix.g" importer->setInterfaceSecurityLevel(sec_level->getText()); *dbg << "SEC_LEVEL: " << sec_level->getText() << std::endl; -#line 5700 "PIXCfgParser.cpp" +#line 5670 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -5710,17 +5680,47 @@ void PIXCfgParser::sec_level() { } void PIXCfgParser::nameif() { - Tracer traceInOut(this, "nameif"); try { // for error handling match(NAMEIF); interface_label(); if ( inputState->guessing==0 ) { -#line 1503 "pix.g" +#line 1515 "pix.g" importer->setInterfaceParametes(LT(0)->getText(), "", ""); *dbg << " NAMEIF: " << LT(0)->getText() << std::endl; +#line 5694 "PIXCfgParser.cpp" + } + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { + if( inputState->guessing == 0 ) { + reportError(ex); + recover(ex,_tokenSet_9); + } else { + throw; + } + } +} + +void PIXCfgParser::interface_description() { + + try { // for error handling + match(DESCRIPTION); + if ( inputState->guessing==0 ) { +#line 1524 "pix.g" + + *dbg << LT(1)->getLine() << ":"; + std::string descr; + while (LA(1) != ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE && LA(1) != NEWLINE) + { + descr += LT(1)->getText() + " "; + consume(); + } + importer->setInterfaceComment( descr ); + *dbg << " DESCRIPTION " << descr << std::endl; + //consumeUntil(NEWLINE); + #line 5725 "PIXCfgParser.cpp" } } @@ -5734,40 +5734,7 @@ void PIXCfgParser::nameif() { } } -void PIXCfgParser::interface_description() { - Tracer traceInOut(this, "interface_description"); - - try { // for error handling - match(DESCRIPTION); - if ( inputState->guessing==0 ) { -#line 1512 "pix.g" - - *dbg << LT(1)->getLine() << ":"; - std::string descr; - while (LA(1) != ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE && LA(1) != NEWLINE) - { - descr += LT(1)->getText() + " "; - consume(); - } - importer->setInterfaceComment( descr ); - *dbg << " DESCRIPTION " << descr << std::endl; - //consumeUntil(NEWLINE); - -#line 5757 "PIXCfgParser.cpp" - } - } - catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { - if( inputState->guessing == 0 ) { - reportError(ex); - recover(ex,_tokenSet_9); - } else { - throw; - } - } -} - void PIXCfgParser::switchport() { - Tracer traceInOut(this, "switchport"); ANTLR_USE_NAMESPACE(antlr)RefToken vlan_num = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling @@ -5777,12 +5744,12 @@ void PIXCfgParser::switchport() { vlan_num = LT(1); match(INT_CONST); if ( inputState->guessing==0 ) { -#line 1624 "pix.g" +#line 1636 "pix.g" importer->addMessageToLog("Switch port vlan " + vlan_num->getText()); *dbg << "Switch port vlan " << vlan_num->getText() << std::endl; -#line 5786 "PIXCfgParser.cpp" +#line 5753 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -5796,18 +5763,17 @@ void PIXCfgParser::switchport() { } void PIXCfgParser::shutdown() { - Tracer traceInOut(this, "shutdown"); try { // for error handling match(SHUTDOWN); if ( inputState->guessing==0 ) { -#line 1527 "pix.g" +#line 1539 "pix.g" importer->ignoreCurrentInterface(); *dbg<< LT(1)->getLine() << ":" << " INTERFACE SHUTDOWN " << std::endl; -#line 5811 "PIXCfgParser.cpp" +#line 5777 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -5821,7 +5787,6 @@ void PIXCfgParser::shutdown() { } void PIXCfgParser::interface_no_commands() { - Tracer traceInOut(this, "interface_no_commands"); try { // for error handling match(NO); @@ -5854,13 +5819,13 @@ void PIXCfgParser::interface_no_commands() { } } if ( inputState->guessing==0 ) { -#line 1476 "pix.g" +#line 1488 "pix.g" *dbg << " INTERFACE \"NO\" COMMAND: " << LT(0)->getText() << std::endl; consumeUntil(NEWLINE); -#line 5864 "PIXCfgParser.cpp" +#line 5829 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -5874,7 +5839,6 @@ void PIXCfgParser::interface_no_commands() { } void PIXCfgParser::unsupported_interface_commands() { - Tracer traceInOut(this, "unsupported_interface_commands"); try { // for error handling { @@ -5956,13 +5920,13 @@ void PIXCfgParser::unsupported_interface_commands() { } } if ( inputState->guessing==0 ) { -#line 1468 "pix.g" +#line 1480 "pix.g" *dbg << " UNSUPPORTED INTERFACE COMMAND: " << LT(0)->getText() << std::endl; consumeUntil(NEWLINE); -#line 5966 "PIXCfgParser.cpp" +#line 5930 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -5976,7 +5940,6 @@ void PIXCfgParser::unsupported_interface_commands() { } void PIXCfgParser::v6_ip_address() { - Tracer traceInOut(this, "v6_ip_address"); try { // for error handling if ((LA(1) == WORD) && (LA(2) == DHCP)) { @@ -6001,7 +5964,6 @@ void PIXCfgParser::v6_ip_address() { } void PIXCfgParser::v7_ip_address() { - Tracer traceInOut(this, "v7_ip_address"); try { // for error handling switch ( LA(1)) { @@ -6032,7 +5994,6 @@ void PIXCfgParser::v7_ip_address() { } void PIXCfgParser::v6_dhcp_address() { - Tracer traceInOut(this, "v6_dhcp_address"); ANTLR_USE_NAMESPACE(antlr)RefToken lbl = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken dhcp = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -6042,7 +6003,7 @@ void PIXCfgParser::v6_dhcp_address() { dhcp = LT(1); match(DHCP); if ( inputState->guessing==0 ) { -#line 1562 "pix.g" +#line 1574 "pix.g" std::string label = lbl->getText(); std::string addr = dhcp->getText(); @@ -6053,7 +6014,7 @@ void PIXCfgParser::v6_dhcp_address() { // which we do not support consumeUntil(NEWLINE); -#line 6057 "PIXCfgParser.cpp" +#line 6018 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -6067,7 +6028,6 @@ void PIXCfgParser::v6_dhcp_address() { } void PIXCfgParser::v6_static_address() { - Tracer traceInOut(this, "v6_static_address"); ANTLR_USE_NAMESPACE(antlr)RefToken lbl = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken a = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken m = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -6080,7 +6040,7 @@ void PIXCfgParser::v6_static_address() { m = LT(1); match(IPV4); if ( inputState->guessing==0 ) { -#line 1575 "pix.g" +#line 1587 "pix.g" std::string label = lbl->getText(); std::string addr = a->getText(); @@ -6091,7 +6051,7 @@ void PIXCfgParser::v6_static_address() { // in case there are some other parameters after address and netmask consumeUntil(NEWLINE); -#line 6095 "PIXCfgParser.cpp" +#line 6055 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -6105,14 +6065,13 @@ void PIXCfgParser::v6_static_address() { } void PIXCfgParser::v7_dhcp_address() { - Tracer traceInOut(this, "v7_dhcp_address"); ANTLR_USE_NAMESPACE(antlr)RefToken dhcp = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling dhcp = LT(1); match(DHCP); if ( inputState->guessing==0 ) { -#line 1592 "pix.g" +#line 1604 "pix.g" std::string addr = dhcp->getText(); importer->addInterfaceAddress(addr, ""); @@ -6120,7 +6079,7 @@ void PIXCfgParser::v7_dhcp_address() { << " INTRFACE ADDRESS: " << addr << std::endl; consumeUntil(NEWLINE); -#line 6124 "PIXCfgParser.cpp" +#line 6083 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -6134,7 +6093,6 @@ void PIXCfgParser::v7_dhcp_address() { } void PIXCfgParser::v7_static_address() { - Tracer traceInOut(this, "v7_static_address"); ANTLR_USE_NAMESPACE(antlr)RefToken a = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken m = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken s = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -6163,7 +6121,7 @@ void PIXCfgParser::v7_static_address() { } } if ( inputState->guessing==0 ) { -#line 1603 "pix.g" +#line 1615 "pix.g" std::string addr = a->getText(); std::string netm = m->getText(); @@ -6180,7 +6138,7 @@ void PIXCfgParser::v7_static_address() { } consumeUntil(NEWLINE); -#line 6184 "PIXCfgParser.cpp" +#line 6142 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -6194,7 +6152,6 @@ void PIXCfgParser::v7_static_address() { } void PIXCfgParser::icmp_types_for_icmp_command() { - Tracer traceInOut(this, "icmp_types_for_icmp_command"); try { // for error handling switch ( LA(1)) { @@ -6202,13 +6159,13 @@ void PIXCfgParser::icmp_types_for_icmp_command() { { match(INT_CONST); if ( inputState->guessing==0 ) { -#line 1743 "pix.g" +#line 1761 "pix.g" importer->icmp_type = LT(0)->getText(); importer->icmp_code = "0"; importer->icmp_spec = ""; -#line 6212 "PIXCfgParser.cpp" +#line 6169 "PIXCfgParser.cpp" } break; } @@ -6246,13 +6203,13 @@ void PIXCfgParser::icmp_types_for_icmp_command() { } } if ( inputState->guessing==0 ) { -#line 1750 "pix.g" +#line 1768 "pix.g" importer->icmp_type = ""; importer->icmp_code = "0"; importer->icmp_spec = LT(0)->getText(); -#line 6256 "PIXCfgParser.cpp" +#line 6213 "PIXCfgParser.cpp" } break; } @@ -6262,57 +6219,6 @@ void PIXCfgParser::icmp_types_for_icmp_command() { } } } - catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { - if( inputState->guessing == 0 ) { - reportError(ex); - recover(ex,_tokenSet_35); - } else { - throw; - } - } -} - -void PIXCfgParser::nat_addr_match() { - Tracer traceInOut(this, "nat_addr_match"); - ANTLR_USE_NAMESPACE(antlr)RefToken acl_name = ANTLR_USE_NAMESPACE(antlr)nullToken; - - try { // for error handling - { - switch ( LA(1)) { - case HOST: - { - host_addr(); - if ( inputState->guessing==0 ) { -#line 1842 "pix.g" - - importer->nat_a = importer->tmp_a; - importer->nat_nm = importer->tmp_nm; - -#line 6292 "PIXCfgParser.cpp" - } - break; - } - case ACCESS_LIST: - { - match(ACCESS_LIST); - acl_name = LT(1); - match(WORD); - if ( inputState->guessing==0 ) { -#line 1848 "pix.g" - - importer->nat_acl = acl_name->getText(); - -#line 6306 "PIXCfgParser.cpp" - } - break; - } - default: - { - throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); - } - } - } - } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); @@ -6323,8 +6229,57 @@ void PIXCfgParser::nat_addr_match() { } } +void PIXCfgParser::nat_addr_match() { + ANTLR_USE_NAMESPACE(antlr)RefToken acl_name = ANTLR_USE_NAMESPACE(antlr)nullToken; + + try { // for error handling + { + switch ( LA(1)) { + case HOST: + { + host_addr(); + if ( inputState->guessing==0 ) { +#line 1860 "pix.g" + + importer->nat_a = importer->tmp_a; + importer->nat_nm = importer->tmp_nm; + +#line 6248 "PIXCfgParser.cpp" + } + break; + } + case ACCESS_LIST: + { + match(ACCESS_LIST); + acl_name = LT(1); + match(WORD); + if ( inputState->guessing==0 ) { +#line 1866 "pix.g" + + importer->nat_acl = acl_name->getText(); + +#line 6262 "PIXCfgParser.cpp" + } + break; + } + default: + { + throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); + } + } + } + } + catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { + if( inputState->guessing == 0 ) { + reportError(ex); + recover(ex,_tokenSet_37); + } else { + throw; + } + } +} + void PIXCfgParser::nat_command_last_parameters() { - Tracer traceInOut(this, "nat_command_last_parameters"); ANTLR_USE_NAMESPACE(antlr)RefToken max_conn = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken max_emb_conn = ANTLR_USE_NAMESPACE(antlr)nullToken; @@ -6411,13 +6366,13 @@ void PIXCfgParser::nat_command_last_parameters() { } } if ( inputState->guessing==0 ) { -#line 1865 "pix.g" +#line 1883 "pix.g" importer->static_max_conn = max_conn->getText(); if (max_emb_conn) importer->static_max_emb_conn = max_emb_conn->getText(); -#line 6421 "PIXCfgParser.cpp" +#line 6376 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -6431,16 +6386,15 @@ void PIXCfgParser::nat_command_last_parameters() { } void PIXCfgParser::nat_new_top_level_command() { - Tracer traceInOut(this, "nat_new_top_level_command"); try { // for error handling match(NAT); if ( inputState->guessing==0 ) { -#line 1873 "pix.g" +#line 1891 "pix.g" consumeUntil(NEWLINE); -#line 6444 "PIXCfgParser.cpp" +#line 6398 "PIXCfgParser.cpp" } } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { @@ -6454,12 +6408,22 @@ void PIXCfgParser::nat_new_top_level_command() { } void PIXCfgParser::static_starts_with_hostaddr() { - Tracer traceInOut(this, "static_starts_with_hostaddr"); try { // for error handling static_mapped_addr_match(); static_real_addr_match(); - static_command_common_last_parameters(); + { // ( ... )* + for (;;) { + if ((_tokenSet_38.member(LA(1)))) { + static_command_common_last_parameters(); + } + else { + goto _loop253; + } + + } + _loop253:; + } // ( ... )* } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { @@ -6472,7 +6436,6 @@ void PIXCfgParser::static_starts_with_hostaddr() { } void PIXCfgParser::static_starts_with_tcp_udp() { - Tracer traceInOut(this, "static_starts_with_tcp_udp"); try { // for error handling { @@ -6494,34 +6457,45 @@ void PIXCfgParser::static_starts_with_tcp_udp() { } } if ( inputState->guessing==0 ) { -#line 1967 "pix.g" +#line 1991 "pix.g" importer->protocol = LT(0)->getText(); - *dbg << " SERVICE TCP/UDP" << LT(0)->getText() << " "; + *dbg << " SERVICE TCP/UDP " << LT(0)->getText() << " "; -#line 6503 "PIXCfgParser.cpp" +#line 6466 "PIXCfgParser.cpp" } static_mapped_addr_match(); tcp_udp_port_spec(); if ( inputState->guessing==0 ) { -#line 1981 "pix.g" +#line 2005 "pix.g" importer->mapped_port_spec = importer->tmp_port_spec_2; - *dbg << "mapped port " << importer->mapped_port_spec; + *dbg << "mapped port " << importer->mapped_port_spec << " "; -#line 6513 "PIXCfgParser.cpp" +#line 6476 "PIXCfgParser.cpp" } static_real_addr_match(); tcp_udp_port_spec(); if ( inputState->guessing==0 ) { -#line 1996 "pix.g" +#line 2020 "pix.g" importer->real_port_spec = importer->tmp_port_spec_2; - *dbg << "real port " << importer->real_port_spec; + *dbg << "real port " << importer->real_port_spec << " "; -#line 6523 "PIXCfgParser.cpp" +#line 6486 "PIXCfgParser.cpp" } - static_command_common_last_parameters(); + { // ( ... )* + for (;;) { + if ((_tokenSet_38.member(LA(1)))) { + static_command_common_last_parameters(); + } + else { + goto _loop261; + } + + } + _loop261:; + } // ( ... )* } catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { @@ -6534,21 +6508,21 @@ void PIXCfgParser::static_starts_with_tcp_udp() { } void PIXCfgParser::static_mapped_addr_match() { - Tracer traceInOut(this, "static_mapped_addr_match"); try { // for error handling { switch ( LA(1)) { - case HOST: + case IPV4: + case IPV6: { - host_addr(); + single_addr(); if ( inputState->guessing==0 ) { -#line 1938 "pix.g" +#line 1962 "pix.g" importer->mapped_a = importer->tmp_a; importer->mapped_nm = importer->tmp_nm; -#line 6552 "PIXCfgParser.cpp" +#line 6526 "PIXCfgParser.cpp" } break; } @@ -6556,12 +6530,12 @@ void PIXCfgParser::static_mapped_addr_match() { { match(INTRFACE); if ( inputState->guessing==0 ) { -#line 1944 "pix.g" +#line 1968 "pix.g" importer->mapped_a = "interface"; importer->mapped_nm = ""; -#line 6565 "PIXCfgParser.cpp" +#line 6539 "PIXCfgParser.cpp" } break; } @@ -6575,7 +6549,7 @@ void PIXCfgParser::static_mapped_addr_match() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_37); + recover(ex,_tokenSet_39); } else { throw; } @@ -6583,22 +6557,22 @@ void PIXCfgParser::static_mapped_addr_match() { } void PIXCfgParser::static_real_addr_match() { - Tracer traceInOut(this, "static_real_addr_match"); ANTLR_USE_NAMESPACE(antlr)RefToken acl_name = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling { switch ( LA(1)) { - case HOST: + case IPV4: + case IPV6: { - host_addr(); + single_addr(); if ( inputState->guessing==0 ) { -#line 1954 "pix.g" +#line 1978 "pix.g" importer->real_a = importer->tmp_a; importer->real_nm = importer->tmp_nm; -#line 6602 "PIXCfgParser.cpp" +#line 6576 "PIXCfgParser.cpp" } break; } @@ -6608,11 +6582,11 @@ void PIXCfgParser::static_real_addr_match() { acl_name = LT(1); match(WORD); if ( inputState->guessing==0 ) { -#line 1960 "pix.g" +#line 1984 "pix.g" importer->real_addr_acl = acl_name->getText(); -#line 6616 "PIXCfgParser.cpp" +#line 6590 "PIXCfgParser.cpp" } break; } @@ -6626,7 +6600,7 @@ void PIXCfgParser::static_real_addr_match() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_38); + recover(ex,_tokenSet_40); } else { throw; } @@ -6634,27 +6608,53 @@ void PIXCfgParser::static_real_addr_match() { } void PIXCfgParser::static_command_common_last_parameters() { - Tracer traceInOut(this, "static_command_common_last_parameters"); ANTLR_USE_NAMESPACE(antlr)RefToken nm = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken max_conn = ANTLR_USE_NAMESPACE(antlr)nullToken; ANTLR_USE_NAMESPACE(antlr)RefToken max_emb_conn = ANTLR_USE_NAMESPACE(antlr)nullToken; try { // for error handling switch ( LA(1)) { + case DNS: + { + match(DNS); + if ( inputState->guessing==0 ) { +#line 2038 "pix.g" + + importer->addMessageToLog( + "Warning: 'static' command option 'dns' is not supported"); + +#line 6627 "PIXCfgParser.cpp" + } + break; + } + case NORANDOMSEQ: + { + match(NORANDOMSEQ); + if ( inputState->guessing==0 ) { +#line 2044 "pix.g" + + importer->addMessageToLog( + "Warning: 'static' command option 'norandomseq' is not supported"); + +#line 6640 "PIXCfgParser.cpp" + } + break; + } case NETMASK: { match(NETMASK); nm = LT(1); - match(IPv4); + match(IPV4); if ( inputState->guessing==0 ) { -#line 2012 "pix.g" +#line 2050 "pix.g" importer->mapped_nm = nm->getText(); -#line 6655 "PIXCfgParser.cpp" +#line 6654 "PIXCfgParser.cpp" } break; } + case INT_CONST: case TCP: case UDP: { @@ -6670,52 +6670,38 @@ void PIXCfgParser::static_command_common_last_parameters() { match(UDP); break; } + case INT_CONST: + { + break; + } default: { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } } } - if ( inputState->guessing==0 ) { -#line 2017 "pix.g" - - // <0-65535> The maximum number of simultaneous tcp connections - - -#line 6686 "PIXCfgParser.cpp" - } - break; - } - case INT_CONST: - { max_conn = LT(1); match(INT_CONST); { - switch ( LA(1)) { - case INT_CONST: - { + if ((LA(1) == INT_CONST) && (_tokenSet_41.member(LA(2)))) { max_emb_conn = LT(1); match(INT_CONST); - break; } - case NEWLINE: - { - break; + else if ((_tokenSet_41.member(LA(1))) && (_tokenSet_42.member(LA(2)))) { } - default: - { + else { throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename()); } - } + } if ( inputState->guessing==0 ) { -#line 2023 "pix.g" +#line 2056 "pix.g" importer->static_max_conn = max_conn->getText(); if (max_emb_conn) importer->static_max_emb_conn = max_emb_conn->getText(); -#line 6719 "PIXCfgParser.cpp" +#line 6705 "PIXCfgParser.cpp" } break; } @@ -6728,7 +6714,7 @@ void PIXCfgParser::static_command_common_last_parameters() { catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) { if( inputState->guessing == 0 ) { reportError(ex); - recover(ex,_tokenSet_9); + recover(ex,_tokenSet_41); } else { throw; } @@ -6794,6 +6780,7 @@ const char* PIXCfgParser::tokenNames[] = { "\"service-object\"", "\"port-object\"", "\"crypto\"", + "\"dns\"", "\"no\"", "\"certificate\"", "\"PIX\"", @@ -6880,16 +6867,16 @@ const char* PIXCfgParser::tokenNames[] = { "\"standby\"", "\"switchport\"", "\"access\"", + "\"scopy\"", "\"remark\"", "\"access-group\"", "COLON_COMMENT", "CLOSING_PAREN", - "DNS", "\"global\"", "\"static\"", "COMMA", - "NETMASK", - "IPv4", + "\"norandomseq\"", + "\"netmask\"", "\"secondary\"", "\"setroute\"", "Whitespace", @@ -6929,21 +6916,21 @@ const char* PIXCfgParser::tokenNames[] = { const unsigned long PIXCfgParser::_tokenSet_0_data_[] = { 2UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_0(_tokenSet_0_data_,6); -const unsigned long PIXCfgParser::_tokenSet_1_data_[] = { 1342187378UL, 2814382112UL, 2147486720UL, 67960832UL, 835584UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long PIXCfgParser::_tokenSet_1_data_[] = { 1342187378UL, 1337987104UL, 6145UL, 135921665UL, 1769472UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF NEWLINE "quit" "ip" "timeout" "names" "name" WORD OBJECT "nat" "icmp" -// OBJECT_GROUP "crypto" "no" "certificate" "PIX" "ASA" "hostname" "access-list" -// "ssh" "telnet" "interface" "controller" LINE_COMMENT "exit" "nameif" -// "access-group" COLON_COMMENT "global" "static" +// OBJECT_GROUP "crypto" "dns" "no" "certificate" "PIX" "ASA" "hostname" +// "access-list" "ssh" "telnet" "interface" "controller" LINE_COMMENT "exit" +// "nameif" "access-group" COLON_COMMENT "global" "static" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_1(_tokenSet_1_data_,12); -const unsigned long PIXCfgParser::_tokenSet_2_data_[] = { 0UL, 64UL, 0UL, 7340032UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long PIXCfgParser::_tokenSet_2_data_[] = { 0UL, 64UL, 0UL, 14680064UL, 0UL, 0UL, 0UL, 0UL }; // INT_CONST "aui" "auto" "bnc" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_2(_tokenSet_2_data_,8); -const unsigned long PIXCfgParser::_tokenSet_3_data_[] = { 536854592UL, 5024UL, 2UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long PIXCfgParser::_tokenSet_3_data_[] = { 536854592UL, 5024UL, 4UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "ip" "ah" "eigrp" "esp" "gre" "igmp" "igrp" "ipinip" "ipsec" "nos" "ospf" // "pcp" "pim" "pptp" "snp" OBJECT "icmp" "icmp6" "tcp" "udp" OBJECT_GROUP // "permit" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_3(_tokenSet_3_data_,8); -const unsigned long PIXCfgParser::_tokenSet_4_data_[] = { 536854592UL, 5024UL, 4UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long PIXCfgParser::_tokenSet_4_data_[] = { 536854592UL, 5024UL, 8UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "ip" "ah" "eigrp" "esp" "gre" "igmp" "igrp" "ipinip" "ipsec" "nos" "ospf" // "pcp" "pim" "pptp" "snp" OBJECT "icmp" "icmp6" "tcp" "udp" OBJECT_GROUP // "deny" @@ -6951,82 +6938,88 @@ const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_4(_tokenSet_4_dat const unsigned long PIXCfgParser::_tokenSet_5_data_[] = { 0UL, 3153921UL, 0UL, 0UL, 0UL, 0UL }; // "description" "group-object" "service-object" "port-object" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_5(_tokenSet_5_data_,6); -const unsigned long PIXCfgParser::_tokenSet_6_data_[] = { 268437520UL, 4098UL, 2147483648UL, 1UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long PIXCfgParser::_tokenSet_6_data_[] = { 268437520UL, 4098UL, 0UL, 3UL, 0UL, 0UL, 0UL, 0UL }; // NEWLINE IPV4 OBJECT "host" OBJECT_GROUP "interface" "any" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_6(_tokenSet_6_data_,8); -const unsigned long PIXCfgParser::_tokenSet_7_data_[] = { 1342187378UL, 2814382127UL, 2147486720UL, 67960832UL, 835584UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long PIXCfgParser::_tokenSet_7_data_[] = { 1342187378UL, 1337987119UL, 6145UL, 135921665UL, 1769472UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF NEWLINE "quit" "ip" "timeout" "names" "name" WORD OBJECT "nat" "description" -// "host" "range" "subnet" "icmp" OBJECT_GROUP "crypto" "no" "certificate" +// "host" "range" "subnet" "icmp" OBJECT_GROUP "crypto" "dns" "no" "certificate" // "PIX" "ASA" "hostname" "access-list" "ssh" "telnet" "interface" "controller" // LINE_COMMENT "exit" "nameif" "access-group" COLON_COMMENT "global" "static" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_7(_tokenSet_7_data_,12); -const unsigned long PIXCfgParser::_tokenSet_8_data_[] = { 67117072UL, 2684355394UL, 3840UL, 131072UL, 2228224UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; -// NEWLINE WORD "pptp" "host" INT_CONST "tcp" "udp" "hostname" "access-list" -// "echo" "rip" "ssh" "telnet" "outside" DNS NETMASK -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_8(_tokenSet_8_data_,12); +const unsigned long PIXCfgParser::_tokenSet_8_data_[] = { 16UL, 8389440UL, 0UL, 262144UL, 0UL, 0UL, 0UL, 0UL }; +// NEWLINE INT_CONST "tcp" "udp" "dns" "outside" +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_8(_tokenSet_8_data_,8); const unsigned long PIXCfgParser::_tokenSet_9_data_[] = { 16UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // NEWLINE const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_9(_tokenSet_9_data_,6); -const unsigned long PIXCfgParser::_tokenSet_10_data_[] = { 1342189426UL, 2814382191UL, 4294966768UL, 68141063UL, 901120UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long PIXCfgParser::_tokenSet_10_data_[] = { 1342189426UL, 1337987183UL, 4294966241UL, 136282127UL, 4128768UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF NEWLINE "quit" "ip" "timeout" "names" "name" IPV4 WORD OBJECT "nat" // "description" "host" "range" "subnet" "icmp" INT_CONST OBJECT_GROUP -// "crypto" "no" "certificate" "PIX" "ASA" "hostname" "access-list" "eq" -// "gt" "lt" "neq" "echo" "ssh" "telnet" "established" "alternate-address" +// "crypto" "dns" "no" "certificate" "PIX" "ASA" "hostname" "access-list" +// "eq" "gt" "lt" "neq" "echo" "ssh" "telnet" "established" "alternate-address" // "conversion-error" "echo-reply" "information-reply" "information-request" // "mask-reply" "mask-request" "mobile-redirect" "parameter-problem" "redirect" // "router-advertisement" "router-solicitation" "source-quench" "time-exceeded" // "timestamp-reply" "timestamp-request" "traceroute" "unreachable" "interface" // "any" "log" "log-input" "fragments" "time-range" "controller" "outside" // LINE_COMMENT "exit" "nameif" "access-group" COLON_COMMENT CLOSING_PAREN -// "global" "static" +// "global" "static" COMMA const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_10(_tokenSet_10_data_,12); -const unsigned long PIXCfgParser::_tokenSet_11_data_[] = { 268419136UL, 64UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long PIXCfgParser::_tokenSet_11_data_[] = { 67123216UL, 1082131264UL, 7681UL, 262144UL, 12582912UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +// NEWLINE IPV4 IPV6 WORD "pptp" INT_CONST "tcp" "udp" "dns" "hostname" +// "access-list" "echo" "rip" "ssh" "telnet" "outside" "norandomseq" "netmask" +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_11(_tokenSet_11_data_,12); +const unsigned long PIXCfgParser::_tokenSet_12_data_[] = { 268419136UL, 64UL, 0UL, 0UL, 0UL, 0UL }; // "ip" "ah" "eigrp" "esp" "gre" "igmp" "igrp" "ipinip" "ipsec" "nos" "ospf" // "pcp" "pim" "pptp" "snp" INT_CONST -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_11(_tokenSet_11_data_,6); -const unsigned long PIXCfgParser::_tokenSet_12_data_[] = { 1342187378UL, 2814382129UL, 2147486720UL, 67960832UL, 835584UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_12(_tokenSet_12_data_,6); +const unsigned long PIXCfgParser::_tokenSet_13_data_[] = { 1342187378UL, 1337987121UL, 6145UL, 135921665UL, 1769472UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF NEWLINE "quit" "ip" "timeout" "names" "name" WORD OBJECT "nat" "description" -// "service" "icmp" OBJECT_GROUP "crypto" "no" "certificate" "PIX" "ASA" -// "hostname" "access-list" "ssh" "telnet" "interface" "controller" LINE_COMMENT -// "exit" "nameif" "access-group" COLON_COMMENT "global" "static" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_12(_tokenSet_12_data_,12); -const unsigned long PIXCfgParser::_tokenSet_13_data_[] = { 16UL, 0UL, 0UL, 49158UL, 0UL, 0UL, 0UL, 0UL }; +// "service" "icmp" OBJECT_GROUP "crypto" "dns" "no" "certificate" "PIX" +// "ASA" "hostname" "access-list" "ssh" "telnet" "interface" "controller" +// LINE_COMMENT "exit" "nameif" "access-group" COLON_COMMENT "global" "static" +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_13(_tokenSet_13_data_,12); +const unsigned long PIXCfgParser::_tokenSet_14_data_[] = { 16UL, 0UL, 0UL, 98316UL, 0UL, 0UL, 0UL, 0UL }; // NEWLINE "log" "log-input" "fragments" "time-range" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_13(_tokenSet_13_data_,8); -const unsigned long PIXCfgParser::_tokenSet_14_data_[] = { 16UL, 2052UL, 240UL, 0UL, 0UL, 0UL, 0UL, 0UL }; -// NEWLINE "range" "destination" "eq" "gt" "lt" "neq" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_14(_tokenSet_14_data_,8); -const unsigned long PIXCfgParser::_tokenSet_15_data_[] = { 268437520UL, 6150UL, 2147487984UL, 49159UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long PIXCfgParser::_tokenSet_15_data_[] = { 16UL, 2052UL, 480UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +// NEWLINE "range" "destination" "eq" "gt" "lt" "neq" +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_15(_tokenSet_15_data_,8); +const unsigned long PIXCfgParser::_tokenSet_16_data_[] = { 268437520UL, 6150UL, 8672UL, 98319UL, 0UL, 0UL, 0UL, 0UL }; // NEWLINE IPV4 OBJECT "host" "range" "destination" OBJECT_GROUP "eq" "gt" // "lt" "neq" "established" "interface" "any" "log" "log-input" "fragments" // "time-range" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_15(_tokenSet_15_data_,8); -const unsigned long PIXCfgParser::_tokenSet_16_data_[] = { 1342187378UL, 2814406689UL, 2147486720UL, 67960832UL, 835584UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_16(_tokenSet_16_data_,8); +const unsigned long PIXCfgParser::_tokenSet_17_data_[] = { 1342187378UL, 1338011681UL, 6145UL, 135921665UL, 1769472UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF NEWLINE "quit" "ip" "timeout" "names" "name" WORD OBJECT "nat" "description" -// "icmp" OBJECT_GROUP "group-object" "network-object" "crypto" "no" "certificate" -// "PIX" "ASA" "hostname" "access-list" "ssh" "telnet" "interface" "controller" -// LINE_COMMENT "exit" "nameif" "access-group" COLON_COMMENT "global" "static" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_16(_tokenSet_16_data_,12); -const unsigned long PIXCfgParser::_tokenSet_17_data_[] = { 1342187378UL, 2814455841UL, 2147486720UL, 67960832UL, 835584UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; -// EOF NEWLINE "quit" "ip" "timeout" "names" "name" WORD OBJECT "nat" "description" -// "icmp" OBJECT_GROUP "group-object" "protocol-object" "crypto" "no" "certificate" -// "PIX" "ASA" "hostname" "access-list" "ssh" "telnet" "interface" "controller" -// LINE_COMMENT "exit" "nameif" "access-group" COLON_COMMENT "global" "static" +// "icmp" OBJECT_GROUP "group-object" "network-object" "crypto" "dns" "no" +// "certificate" "PIX" "ASA" "hostname" "access-list" "ssh" "telnet" "interface" +// "controller" LINE_COMMENT "exit" "nameif" "access-group" COLON_COMMENT +// "global" "static" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_17(_tokenSet_17_data_,12); -const unsigned long PIXCfgParser::_tokenSet_18_data_[] = { 1342187378UL, 2814521377UL, 2147486720UL, 67960832UL, 835584UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long PIXCfgParser::_tokenSet_18_data_[] = { 1342187378UL, 1338060833UL, 6145UL, 135921665UL, 1769472UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF NEWLINE "quit" "ip" "timeout" "names" "name" WORD OBJECT "nat" "description" -// "icmp" OBJECT_GROUP "group-object" "icmp-object" "crypto" "no" "certificate" -// "PIX" "ASA" "hostname" "access-list" "ssh" "telnet" "interface" "controller" -// LINE_COMMENT "exit" "nameif" "access-group" COLON_COMMENT "global" "static" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_18(_tokenSet_18_data_,12); -const unsigned long PIXCfgParser::_tokenSet_19_data_[] = { 1342187378UL, 2817536033UL, 2147486720UL, 67960832UL, 835584UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; -// EOF NEWLINE "quit" "ip" "timeout" "names" "name" WORD OBJECT "nat" "description" -// "icmp" OBJECT_GROUP "group-object" "service-object" "port-object" "crypto" +// "icmp" OBJECT_GROUP "group-object" "protocol-object" "crypto" "dns" // "no" "certificate" "PIX" "ASA" "hostname" "access-list" "ssh" "telnet" // "interface" "controller" LINE_COMMENT "exit" "nameif" "access-group" // COLON_COMMENT "global" "static" +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_18(_tokenSet_18_data_,12); +const unsigned long PIXCfgParser::_tokenSet_19_data_[] = { 1342187378UL, 1338126369UL, 6145UL, 135921665UL, 1769472UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +// EOF NEWLINE "quit" "ip" "timeout" "names" "name" WORD OBJECT "nat" "description" +// "icmp" OBJECT_GROUP "group-object" "icmp-object" "crypto" "dns" "no" +// "certificate" "PIX" "ASA" "hostname" "access-list" "ssh" "telnet" "interface" +// "controller" LINE_COMMENT "exit" "nameif" "access-group" COLON_COMMENT +// "global" "static" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_19(_tokenSet_19_data_,12); -const unsigned long PIXCfgParser::_tokenSet_20_data_[] = { 268445712UL, 4166UL, 4294963696UL, 180231UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long PIXCfgParser::_tokenSet_20_data_[] = { 1342187378UL, 1341141025UL, 6145UL, 135921665UL, 1769472UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +// EOF NEWLINE "quit" "ip" "timeout" "names" "name" WORD OBJECT "nat" "description" +// "icmp" OBJECT_GROUP "group-object" "service-object" "port-object" "crypto" +// "dns" "no" "certificate" "PIX" "ASA" "hostname" "access-list" "ssh" +// "telnet" "interface" "controller" LINE_COMMENT "exit" "nameif" "access-group" +// COLON_COMMENT "global" "static" +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_20(_tokenSet_20_data_,12); +const unsigned long PIXCfgParser::_tokenSet_21_data_[] = { 268445712UL, 4166UL, 4294960096UL, 360463UL, 0UL, 0UL, 0UL, 0UL }; // NEWLINE IPV4 WORD OBJECT "host" "range" INT_CONST OBJECT_GROUP "eq" // "gt" "lt" "neq" "echo" "established" "alternate-address" "conversion-error" // "echo-reply" "information-reply" "information-request" "mask-reply" @@ -7034,87 +7027,100 @@ const unsigned long PIXCfgParser::_tokenSet_20_data_[] = { 268445712UL, 4166UL, // "router-solicitation" "source-quench" "time-exceeded" "timestamp-reply" // "timestamp-request" "traceroute" "unreachable" "interface" "any" "log" // "log-input" "fragments" "time-range" "outside" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_20(_tokenSet_20_data_,8); -const unsigned long PIXCfgParser::_tokenSet_21_data_[] = { 268437504UL, 4098UL, 2147483648UL, 1UL, 0UL, 0UL, 0UL, 0UL }; -// IPV4 OBJECT "host" OBJECT_GROUP "interface" "any" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_21(_tokenSet_21_data_,8); -const unsigned long PIXCfgParser::_tokenSet_22_data_[] = { 16UL, 0UL, 0UL, 16390UL, 0UL, 0UL, 0UL, 0UL }; -// NEWLINE "log" "log-input" "fragments" +const unsigned long PIXCfgParser::_tokenSet_22_data_[] = { 268437504UL, 4098UL, 0UL, 3UL, 0UL, 0UL, 0UL, 0UL }; +// IPV4 OBJECT "host" OBJECT_GROUP "interface" "any" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_22(_tokenSet_22_data_,8); -const unsigned long PIXCfgParser::_tokenSet_23_data_[] = { 16UL, 0UL, 0UL, 6UL, 0UL, 0UL, 0UL, 0UL }; -// NEWLINE "log" "log-input" +const unsigned long PIXCfgParser::_tokenSet_23_data_[] = { 16UL, 0UL, 0UL, 32780UL, 0UL, 0UL, 0UL, 0UL }; +// NEWLINE "log" "log-input" "fragments" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_23(_tokenSet_23_data_,8); -const unsigned long PIXCfgParser::_tokenSet_24_data_[] = { 268445712UL, 4100UL, 4336UL, 180230UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long PIXCfgParser::_tokenSet_24_data_[] = { 16UL, 0UL, 0UL, 12UL, 0UL, 0UL, 0UL, 0UL }; +// NEWLINE "log" "log-input" +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_24(_tokenSet_24_data_,8); +const unsigned long PIXCfgParser::_tokenSet_25_data_[] = { 268445712UL, 4100UL, 8672UL, 360460UL, 0UL, 0UL, 0UL, 0UL }; // NEWLINE IPV4 WORD OBJECT "range" OBJECT_GROUP "eq" "gt" "lt" "neq" "established" // "log" "log-input" "fragments" "time-range" "outside" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_24(_tokenSet_24_data_,8); -const unsigned long PIXCfgParser::_tokenSet_25_data_[] = { 0UL, 4UL, 240UL, 0UL, 0UL, 0UL, 0UL, 0UL }; -// "range" "eq" "gt" "lt" "neq" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_25(_tokenSet_25_data_,8); -const unsigned long PIXCfgParser::_tokenSet_26_data_[] = { 67117056UL, 536870976UL, 3840UL, 0UL, 0UL, 0UL, 0UL, 0UL }; -// WORD "pptp" INT_CONST "hostname" "echo" "rip" "ssh" "telnet" +const unsigned long PIXCfgParser::_tokenSet_26_data_[] = { 0UL, 4UL, 480UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +// "range" "eq" "gt" "lt" "neq" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_26(_tokenSet_26_data_,8); -const unsigned long PIXCfgParser::_tokenSet_27_data_[] = { 268435472UL, 4100UL, 4336UL, 49158UL, 0UL, 0UL, 0UL, 0UL }; +const unsigned long PIXCfgParser::_tokenSet_27_data_[] = { 67117056UL, 1073741888UL, 7680UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +// WORD "pptp" INT_CONST "hostname" "echo" "rip" "ssh" "telnet" +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_27(_tokenSet_27_data_,8); +const unsigned long PIXCfgParser::_tokenSet_28_data_[] = { 268435472UL, 4100UL, 8672UL, 98316UL, 0UL, 0UL, 0UL, 0UL }; // NEWLINE OBJECT "range" OBJECT_GROUP "eq" "gt" "lt" "neq" "established" // "log" "log-input" "fragments" "time-range" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_27(_tokenSet_27_data_,8); -const unsigned long PIXCfgParser::_tokenSet_28_data_[] = { 1409296242UL, 2814382180UL, 2147491824UL, 68026366UL, 835584UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_28(_tokenSet_28_data_,8); +const unsigned long PIXCfgParser::_tokenSet_29_data_[] = { 1409296242UL, 1337987172UL, 16353UL, 136052733UL, 1769472UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF NEWLINE "quit" "ip" "timeout" "names" "name" WORD "pptp" OBJECT -// "nat" "range" "icmp" INT_CONST OBJECT_GROUP "crypto" "no" "certificate" +// "nat" "range" "icmp" INT_CONST OBJECT_GROUP "crypto" "dns" "no" "certificate" // "PIX" "ASA" "hostname" "access-list" "eq" "gt" "lt" "neq" "echo" "rip" // "ssh" "telnet" "established" "interface" "log" "log-input" "alerts" // "critical" "debugging" "emergencies" "errors" "informational" "notifications" // "warnings" "disable" "inactive" "interval" "fragments" "time-range" // "controller" LINE_COMMENT "exit" "nameif" "access-group" COLON_COMMENT // "global" "static" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_28(_tokenSet_28_data_,12); -const unsigned long PIXCfgParser::_tokenSet_29_data_[] = { 1409296242UL, 2814382176UL, 2147487488UL, 68026366UL, 835584UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_29(_tokenSet_29_data_,12); +const unsigned long PIXCfgParser::_tokenSet_30_data_[] = { 1409296242UL, 1337987168UL, 7681UL, 136052733UL, 1769472UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // EOF NEWLINE "quit" "ip" "timeout" "names" "name" WORD "pptp" OBJECT -// "nat" "icmp" INT_CONST OBJECT_GROUP "crypto" "no" "certificate" "PIX" -// "ASA" "hostname" "access-list" "echo" "rip" "ssh" "telnet" "interface" +// "nat" "icmp" INT_CONST OBJECT_GROUP "crypto" "dns" "no" "certificate" +// "PIX" "ASA" "hostname" "access-list" "echo" "rip" "ssh" "telnet" "interface" // "log" "log-input" "alerts" "critical" "debugging" "emergencies" "errors" // "informational" "notifications" "warnings" "disable" "inactive" "interval" // "fragments" "time-range" "controller" LINE_COMMENT "exit" "nameif" "access-group" // COLON_COMMENT "global" "static" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_29(_tokenSet_29_data_,12); -const unsigned long PIXCfgParser::_tokenSet_30_data_[] = { 268437504UL, 4102UL, 2147483888UL, 1UL, 0UL, 0UL, 0UL, 0UL }; +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_30(_tokenSet_30_data_,12); +const unsigned long PIXCfgParser::_tokenSet_31_data_[] = { 268437504UL, 4102UL, 480UL, 3UL, 0UL, 0UL, 0UL, 0UL }; // IPV4 OBJECT "host" "range" OBJECT_GROUP "eq" "gt" "lt" "neq" "interface" // "any" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_30(_tokenSet_30_data_,8); -const unsigned long PIXCfgParser::_tokenSet_31_data_[] = { 335554576UL, 536875076UL, 8176UL, 180230UL, 0UL, 0UL, 0UL, 0UL }; +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_31(_tokenSet_31_data_,8); +const unsigned long PIXCfgParser::_tokenSet_32_data_[] = { 335554576UL, 1073745988UL, 16352UL, 360460UL, 0UL, 0UL, 0UL, 0UL }; // NEWLINE IPV4 WORD "pptp" OBJECT "range" INT_CONST OBJECT_GROUP "hostname" // "eq" "gt" "lt" "neq" "echo" "rip" "ssh" "telnet" "established" "log" // "log-input" "fragments" "time-range" "outside" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_31(_tokenSet_31_data_,8); -const unsigned long PIXCfgParser::_tokenSet_32_data_[] = { 335554576UL, 2684361542UL, 2147491824UL, 49159UL, 2097152UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; -// NEWLINE IPV4 WORD "pptp" OBJECT "host" "range" INT_CONST "tcp" "udp" -// "destination" OBJECT_GROUP "hostname" "access-list" "eq" "gt" "lt" "neq" -// "echo" "rip" "ssh" "telnet" "established" "interface" "any" "log" "log-input" -// "fragments" "time-range" NETMASK -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_32(_tokenSet_32_data_,12); -const unsigned long PIXCfgParser::_tokenSet_33_data_[] = { 42205248UL, 8388609UL, 512UL, 4227858432UL, 2303UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_32(_tokenSet_32_data_,8); +const unsigned long PIXCfgParser::_tokenSet_33_data_[] = { 335558672UL, 1082137414UL, 16353UL, 98319UL, 12582912UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +// NEWLINE IPV4 IPV6 WORD "pptp" OBJECT "host" "range" INT_CONST "tcp" +// "udp" "destination" OBJECT_GROUP "dns" "hostname" "access-list" "eq" +// "gt" "lt" "neq" "echo" "rip" "ssh" "telnet" "established" "interface" +// "any" "log" "log-input" "fragments" "time-range" "norandomseq" "netmask" +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_33(_tokenSet_33_data_,12); +const unsigned long PIXCfgParser::_tokenSet_34_data_[] = { 42205248UL, 16777217UL, 1024UL, 4160749568UL, 4607UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "ip" "igmp" "ospf" "pim" "description" "no" "rip" "nameif" "vlan" "speed" // "duplex" "ddns" "forward" "delay" "hold-time" "ipv6" "mac-address" "multicast" // PPPOE "security-level" "shutdown" "switchport" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_33(_tokenSet_33_data_,12); -const unsigned long PIXCfgParser::_tokenSet_34_data_[] = { 42205248UL, 8388609UL, 512UL, 4228644864UL, 2303UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_34(_tokenSet_34_data_,12); +const unsigned long PIXCfgParser::_tokenSet_35_data_[] = { 42205248UL, 16777217UL, 1024UL, 4162322432UL, 4607UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; // "ip" "igmp" "ospf" "pim" "description" "no" "rip" LINE_COMMENT "exit" // "nameif" "vlan" "speed" "duplex" "ddns" "forward" "delay" "hold-time" // "ipv6" "mac-address" "multicast" PPPOE "security-level" "shutdown" "switchport" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_34(_tokenSet_34_data_,12); -const unsigned long PIXCfgParser::_tokenSet_35_data_[] = { 8192UL, 0UL, 0UL, 131072UL, 0UL, 0UL, 0UL, 0UL }; +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_35(_tokenSet_35_data_,12); +const unsigned long PIXCfgParser::_tokenSet_36_data_[] = { 8192UL, 0UL, 0UL, 262144UL, 0UL, 0UL, 0UL, 0UL }; // WORD "outside" -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_35(_tokenSet_35_data_,8); -const unsigned long PIXCfgParser::_tokenSet_36_data_[] = { 0UL, 832UL, 0UL, 131072UL, 131072UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; -// INT_CONST "tcp" "udp" "outside" DNS -const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_36(_tokenSet_36_data_,12); -const unsigned long PIXCfgParser::_tokenSet_37_data_[] = { 67117056UL, 2684354626UL, 3840UL, 0UL, 0UL, 0UL, 0UL, 0UL }; -// WORD "pptp" "host" INT_CONST "hostname" "access-list" "echo" "rip" "ssh" -// "telnet" +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_36(_tokenSet_36_data_,8); +const unsigned long PIXCfgParser::_tokenSet_37_data_[] = { 0UL, 8389440UL, 0UL, 262144UL, 0UL, 0UL, 0UL, 0UL }; +// INT_CONST "tcp" "udp" "dns" "outside" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_37(_tokenSet_37_data_,8); -const unsigned long PIXCfgParser::_tokenSet_38_data_[] = { 67117056UL, 536871744UL, 3840UL, 0UL, 2097152UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; -// WORD "pptp" INT_CONST "tcp" "udp" "hostname" "echo" "rip" "ssh" "telnet" -// NETMASK +const unsigned long PIXCfgParser::_tokenSet_38_data_[] = { 0UL, 8389440UL, 0UL, 0UL, 12582912UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +// INT_CONST "tcp" "udp" "dns" "norandomseq" "netmask" const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_38(_tokenSet_38_data_,12); +const unsigned long PIXCfgParser::_tokenSet_39_data_[] = { 67123200UL, 1073741888UL, 7681UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +// IPV4 IPV6 WORD "pptp" INT_CONST "hostname" "access-list" "echo" "rip" +// "ssh" "telnet" +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_39(_tokenSet_39_data_,8); +const unsigned long PIXCfgParser::_tokenSet_40_data_[] = { 67117072UL, 1082131264UL, 7680UL, 0UL, 12582912UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +// NEWLINE WORD "pptp" INT_CONST "tcp" "udp" "dns" "hostname" "echo" "rip" +// "ssh" "telnet" "norandomseq" "netmask" +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_40(_tokenSet_40_data_,12); +const unsigned long PIXCfgParser::_tokenSet_41_data_[] = { 16UL, 8389440UL, 0UL, 0UL, 12582912UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +// NEWLINE INT_CONST "tcp" "udp" "dns" "norandomseq" "netmask" +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_41(_tokenSet_41_data_,12); +const unsigned long PIXCfgParser::_tokenSet_42_data_[] = { 1342189426UL, 1337987936UL, 6145UL, 135921665UL, 14352384UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL }; +// EOF NEWLINE "quit" "ip" "timeout" "names" "name" IPV4 WORD OBJECT "nat" +// "icmp" INT_CONST "tcp" "udp" OBJECT_GROUP "crypto" "dns" "no" "certificate" +// "PIX" "ASA" "hostname" "access-list" "ssh" "telnet" "interface" "controller" +// LINE_COMMENT "exit" "nameif" "access-group" COLON_COMMENT "global" "static" +// "norandomseq" "netmask" +const ANTLR_USE_NAMESPACE(antlr)BitSet PIXCfgParser::_tokenSet_42(_tokenSet_42_data_,12); diff --git a/src/parsers/PIXCfgParser.hpp b/src/parsers/PIXCfgParser.hpp index 347f5f01d..235752d85 100644 --- a/src/parsers/PIXCfgParser.hpp +++ b/src/parsers/PIXCfgParser.hpp @@ -120,6 +120,7 @@ public: public: void crypto(); public: void no_commands(); public: void timeout_command(); + public: void dns_command(); public: void unknown_command(); public: void ip_protocol_names(); public: void named_object_nat(); @@ -129,6 +130,7 @@ public: public: void range_addr(); public: void subnet_addr(); public: void interface_label(); + public: void single_addr(); public: void named_object_service_parameters(); public: void service_icmp(); public: void service_icmp6(); @@ -215,10 +217,10 @@ protected: private: static const char* tokenNames[]; #ifndef NO_STATIC_CONSTS - static const int NUM_TOKENS = 184; + static const int NUM_TOKENS = 185; #else enum { - NUM_TOKENS = 184 + NUM_TOKENS = 185 }; #endif @@ -300,6 +302,14 @@ private: static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_37; static const unsigned long _tokenSet_38_data_[]; static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_38; + static const unsigned long _tokenSet_39_data_[]; + static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_39; + static const unsigned long _tokenSet_40_data_[]; + 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; }; #endif /*INC_PIXCfgParser_hpp_*/ diff --git a/src/parsers/PIXCfgParserTokenTypes.hpp b/src/parsers/PIXCfgParserTokenTypes.hpp index 9b4f6e7fb..8560d05ed 100644 --- a/src/parsers/PIXCfgParserTokenTypes.hpp +++ b/src/parsers/PIXCfgParserTokenTypes.hpp @@ -63,135 +63,136 @@ struct CUSTOM_API PIXCfgParserTokenTypes { SERVICE_OBJECT = 52, PORT_OBJECT = 53, CRYPTO = 54, - NO = 55, - CERTIFICATE = 56, - PIX_WORD = 57, - ASA_WORD = 58, - VERSION_WORD = 59, - NUMBER = 60, - HOSTNAME = 61, - STRING = 62, - ACCESS_LIST = 63, - EXTENDED = 64, - PERMIT = 65, - DENY = 66, - STANDARD = 67, - P_EQ = 68, - P_GT = 69, - P_LT = 70, - P_NEQ = 71, - ECHO = 72, - RIP = 73, - SSH = 74, - TELNET = 75, - ESTABLISHED = 76, - ALTERNATE_ADDRESS = 77, - CONVERSION_ERROR = 78, - ECHO_REPLY = 79, - INFORMATION_REPLY = 80, - INFORMATION_REQUEST = 81, - MASK_REPLY = 82, - MASK_REQUEST = 83, - MOBILE_REDIRECT = 84, - PARAMETER_PROBLEM = 85, - REDIRECT = 86, - ROUTER_ADVERTISEMENT = 87, - ROUTER_SOLICITATION = 88, - SOURCE_QUENCH = 89, - TIME_EXCEEDED = 90, - TIMESTAMP_REPLY = 91, - TIMESTAMP_REQUEST = 92, - TRACEROUTE = 93, - UNREACHABLE = 94, - INTRFACE = 95, - ANY = 96, - LOG = 97, - LOG_INPUT = 98, - LOG_LEVEL_ALERTS = 99, - LOG_LEVEL_CRITICAL = 100, - LOG_LEVEL_DEBUGGING = 101, - LOG_LEVEL_EMERGENCIES = 102, - LOG_LEVEL_ERRORS = 103, - LOG_LEVEL_INFORMATIONAL = 104, - LOG_LEVEL_NOTIFICATIONS = 105, - LOG_LEVEL_WARNINGS = 106, - LOG_LEVEL_DISABLE = 107, - LOG_LEVEL_INACTIVE = 108, - INTERVAL = 109, - FRAGMENTS = 110, - TIME_RANGE = 111, - CONTROLLER = 112, - OUTSIDE = 113, - LINE_COMMENT = 114, - EXIT = 115, - AUI = 116, - AUTO = 117, - BNC = 118, - FULL = 119, - BASET = 120, - BASETX = 121, - NAMEIF = 122, - VLAN = 123, - SPEED = 124, - DUPLEX = 125, - DDNS = 126, - FORWARD = 127, - DELAY = 128, - HOLD_TIME = 129, - IPV6_C = 130, - MAC_ADDRESS = 131, - MULTICAST = 132, - PPPOE = 133, - SEC_LEVEL = 134, - SHUTDOWN = 135, - ADDRESS = 136, - DHCP = 137, - STANDBY = 138, - SWITCHPORT = 139, - ACCESS = 140, - REMARK = 141, - ACCESS_GROUP = 142, - COLON_COMMENT = 143, - CLOSING_PAREN = 144, - DNS = 145, - GLOBAL = 146, - STATIC = 147, - COMMA = 148, - NETMASK = 149, - IPv4 = 150, - SECONDARY = 151, - SETROUTE = 152, - Whitespace = 153, - HEX_CONST = 154, - NEG_INT_CONST = 155, - DIGIT = 156, - HEXDIGIT = 157, - NUMBER_ADDRESS_OR_WORD = 158, - PIPE_CHAR = 159, - NUMBER_SIGN = 160, - PERCENT = 161, - AMPERSAND = 162, - APOSTROPHE = 163, - STAR = 164, - PLUS = 165, - MINUS = 166, - DOT = 167, - SLASH = 168, - COLON = 169, - SEMICOLON = 170, - LESS_THAN = 171, - EQUALS = 172, - GREATER_THAN = 173, - QUESTION = 174, - COMMERCIAL_AT = 175, - OPENING_SQUARE = 176, - CLOSING_SQUARE = 177, - CARET = 178, - UNDERLINE = 179, - OPENING_BRACE = 180, - CLOSING_BRACE = 181, - TILDE = 182, - EXLAMATION = 183, + DNS = 55, + NO = 56, + CERTIFICATE = 57, + PIX_WORD = 58, + ASA_WORD = 59, + VERSION_WORD = 60, + NUMBER = 61, + HOSTNAME = 62, + STRING = 63, + ACCESS_LIST = 64, + EXTENDED = 65, + PERMIT = 66, + DENY = 67, + STANDARD = 68, + P_EQ = 69, + P_GT = 70, + P_LT = 71, + P_NEQ = 72, + ECHO = 73, + RIP = 74, + SSH = 75, + TELNET = 76, + ESTABLISHED = 77, + ALTERNATE_ADDRESS = 78, + CONVERSION_ERROR = 79, + ECHO_REPLY = 80, + INFORMATION_REPLY = 81, + INFORMATION_REQUEST = 82, + MASK_REPLY = 83, + MASK_REQUEST = 84, + MOBILE_REDIRECT = 85, + PARAMETER_PROBLEM = 86, + REDIRECT = 87, + ROUTER_ADVERTISEMENT = 88, + ROUTER_SOLICITATION = 89, + SOURCE_QUENCH = 90, + TIME_EXCEEDED = 91, + TIMESTAMP_REPLY = 92, + TIMESTAMP_REQUEST = 93, + TRACEROUTE = 94, + UNREACHABLE = 95, + INTRFACE = 96, + ANY = 97, + LOG = 98, + LOG_INPUT = 99, + LOG_LEVEL_ALERTS = 100, + LOG_LEVEL_CRITICAL = 101, + LOG_LEVEL_DEBUGGING = 102, + LOG_LEVEL_EMERGENCIES = 103, + LOG_LEVEL_ERRORS = 104, + LOG_LEVEL_INFORMATIONAL = 105, + LOG_LEVEL_NOTIFICATIONS = 106, + LOG_LEVEL_WARNINGS = 107, + LOG_LEVEL_DISABLE = 108, + LOG_LEVEL_INACTIVE = 109, + INTERVAL = 110, + FRAGMENTS = 111, + TIME_RANGE = 112, + CONTROLLER = 113, + OUTSIDE = 114, + LINE_COMMENT = 115, + EXIT = 116, + AUI = 117, + AUTO = 118, + BNC = 119, + FULL = 120, + BASET = 121, + BASETX = 122, + NAMEIF = 123, + VLAN = 124, + SPEED = 125, + DUPLEX = 126, + DDNS = 127, + FORWARD = 128, + DELAY = 129, + HOLD_TIME = 130, + IPV6_C = 131, + MAC_ADDRESS = 132, + MULTICAST = 133, + PPPOE = 134, + SEC_LEVEL = 135, + SHUTDOWN = 136, + ADDRESS = 137, + DHCP = 138, + STANDBY = 139, + SWITCHPORT = 140, + ACCESS = 141, + SCOPY = 142, + REMARK = 143, + ACCESS_GROUP = 144, + COLON_COMMENT = 145, + CLOSING_PAREN = 146, + GLOBAL = 147, + STATIC = 148, + COMMA = 149, + NORANDOMSEQ = 150, + NETMASK = 151, + SECONDARY = 152, + SETROUTE = 153, + Whitespace = 154, + HEX_CONST = 155, + NEG_INT_CONST = 156, + DIGIT = 157, + HEXDIGIT = 158, + NUMBER_ADDRESS_OR_WORD = 159, + PIPE_CHAR = 160, + NUMBER_SIGN = 161, + PERCENT = 162, + AMPERSAND = 163, + APOSTROPHE = 164, + STAR = 165, + PLUS = 166, + MINUS = 167, + DOT = 168, + SLASH = 169, + COLON = 170, + SEMICOLON = 171, + LESS_THAN = 172, + EQUALS = 173, + GREATER_THAN = 174, + QUESTION = 175, + COMMERCIAL_AT = 176, + OPENING_SQUARE = 177, + CLOSING_SQUARE = 178, + CARET = 179, + UNDERLINE = 180, + OPENING_BRACE = 181, + CLOSING_BRACE = 182, + TILDE = 183, + EXLAMATION = 184, NULL_TREE_LOOKAHEAD = 3 }; #ifdef __cplusplus diff --git a/src/parsers/PIXCfgParserTokenTypes.txt b/src/parsers/PIXCfgParserTokenTypes.txt index f9f9a9d41..0ed908a3b 100644 --- a/src/parsers/PIXCfgParserTokenTypes.txt +++ b/src/parsers/PIXCfgParserTokenTypes.txt @@ -51,132 +51,133 @@ TCP_UDP="tcp-udp"=51 SERVICE_OBJECT="service-object"=52 PORT_OBJECT="port-object"=53 CRYPTO="crypto"=54 -NO="no"=55 -CERTIFICATE="certificate"=56 -PIX_WORD="PIX"=57 -ASA_WORD="ASA"=58 -VERSION_WORD="Version"=59 -NUMBER=60 -HOSTNAME="hostname"=61 -STRING=62 -ACCESS_LIST="access-list"=63 -EXTENDED="extended"=64 -PERMIT="permit"=65 -DENY="deny"=66 -STANDARD="standard"=67 -P_EQ="eq"=68 -P_GT="gt"=69 -P_LT="lt"=70 -P_NEQ="neq"=71 -ECHO="echo"=72 -RIP="rip"=73 -SSH="ssh"=74 -TELNET="telnet"=75 -ESTABLISHED="established"=76 -ALTERNATE_ADDRESS="alternate-address"=77 -CONVERSION_ERROR="conversion-error"=78 -ECHO_REPLY="echo-reply"=79 -INFORMATION_REPLY="information-reply"=80 -INFORMATION_REQUEST="information-request"=81 -MASK_REPLY="mask-reply"=82 -MASK_REQUEST="mask-request"=83 -MOBILE_REDIRECT="mobile-redirect"=84 -PARAMETER_PROBLEM="parameter-problem"=85 -REDIRECT="redirect"=86 -ROUTER_ADVERTISEMENT="router-advertisement"=87 -ROUTER_SOLICITATION="router-solicitation"=88 -SOURCE_QUENCH="source-quench"=89 -TIME_EXCEEDED="time-exceeded"=90 -TIMESTAMP_REPLY="timestamp-reply"=91 -TIMESTAMP_REQUEST="timestamp-request"=92 -TRACEROUTE="traceroute"=93 -UNREACHABLE="unreachable"=94 -INTRFACE="interface"=95 -ANY="any"=96 -LOG="log"=97 -LOG_INPUT="log-input"=98 -LOG_LEVEL_ALERTS="alerts"=99 -LOG_LEVEL_CRITICAL="critical"=100 -LOG_LEVEL_DEBUGGING="debugging"=101 -LOG_LEVEL_EMERGENCIES="emergencies"=102 -LOG_LEVEL_ERRORS="errors"=103 -LOG_LEVEL_INFORMATIONAL="informational"=104 -LOG_LEVEL_NOTIFICATIONS="notifications"=105 -LOG_LEVEL_WARNINGS="warnings"=106 -LOG_LEVEL_DISABLE="disable"=107 -LOG_LEVEL_INACTIVE="inactive"=108 -INTERVAL="interval"=109 -FRAGMENTS="fragments"=110 -TIME_RANGE="time-range"=111 -CONTROLLER="controller"=112 -OUTSIDE="outside"=113 -LINE_COMMENT=114 -EXIT="exit"=115 -AUI="aui"=116 -AUTO="auto"=117 -BNC="bnc"=118 -FULL="full"=119 -BASET="baseT"=120 -BASETX="baseTX"=121 -NAMEIF="nameif"=122 -VLAN="vlan"=123 -SPEED="speed"=124 -DUPLEX="duplex"=125 -DDNS="ddns"=126 -FORWARD="forward"=127 -DELAY="delay"=128 -HOLD_TIME="hold-time"=129 -IPV6_C="ipv6"=130 -MAC_ADDRESS="mac-address"=131 -MULTICAST="multicast"=132 -PPPOE=133 -SEC_LEVEL="security-level"=134 -SHUTDOWN="shutdown"=135 -ADDRESS="address"=136 -DHCP="dhcp"=137 -STANDBY="standby"=138 -SWITCHPORT="switchport"=139 -ACCESS="access"=140 -REMARK="remark"=141 -ACCESS_GROUP="access-group"=142 -COLON_COMMENT=143 -CLOSING_PAREN=144 -DNS=145 -GLOBAL="global"=146 -STATIC="static"=147 -COMMA=148 -NETMASK=149 -IPv4=150 -SECONDARY="secondary"=151 -SETROUTE="setroute"=152 -Whitespace=153 -HEX_CONST=154 -NEG_INT_CONST=155 -DIGIT=156 -HEXDIGIT=157 -NUMBER_ADDRESS_OR_WORD=158 -PIPE_CHAR=159 -NUMBER_SIGN=160 -PERCENT=161 -AMPERSAND=162 -APOSTROPHE=163 -STAR=164 -PLUS=165 -MINUS=166 -DOT=167 -SLASH=168 -COLON=169 -SEMICOLON=170 -LESS_THAN=171 -EQUALS=172 -GREATER_THAN=173 -QUESTION=174 -COMMERCIAL_AT=175 -OPENING_SQUARE=176 -CLOSING_SQUARE=177 -CARET=178 -UNDERLINE=179 -OPENING_BRACE=180 -CLOSING_BRACE=181 -TILDE=182 -EXLAMATION=183 +DNS="dns"=55 +NO="no"=56 +CERTIFICATE="certificate"=57 +PIX_WORD="PIX"=58 +ASA_WORD="ASA"=59 +VERSION_WORD="Version"=60 +NUMBER=61 +HOSTNAME="hostname"=62 +STRING=63 +ACCESS_LIST="access-list"=64 +EXTENDED="extended"=65 +PERMIT="permit"=66 +DENY="deny"=67 +STANDARD="standard"=68 +P_EQ="eq"=69 +P_GT="gt"=70 +P_LT="lt"=71 +P_NEQ="neq"=72 +ECHO="echo"=73 +RIP="rip"=74 +SSH="ssh"=75 +TELNET="telnet"=76 +ESTABLISHED="established"=77 +ALTERNATE_ADDRESS="alternate-address"=78 +CONVERSION_ERROR="conversion-error"=79 +ECHO_REPLY="echo-reply"=80 +INFORMATION_REPLY="information-reply"=81 +INFORMATION_REQUEST="information-request"=82 +MASK_REPLY="mask-reply"=83 +MASK_REQUEST="mask-request"=84 +MOBILE_REDIRECT="mobile-redirect"=85 +PARAMETER_PROBLEM="parameter-problem"=86 +REDIRECT="redirect"=87 +ROUTER_ADVERTISEMENT="router-advertisement"=88 +ROUTER_SOLICITATION="router-solicitation"=89 +SOURCE_QUENCH="source-quench"=90 +TIME_EXCEEDED="time-exceeded"=91 +TIMESTAMP_REPLY="timestamp-reply"=92 +TIMESTAMP_REQUEST="timestamp-request"=93 +TRACEROUTE="traceroute"=94 +UNREACHABLE="unreachable"=95 +INTRFACE="interface"=96 +ANY="any"=97 +LOG="log"=98 +LOG_INPUT="log-input"=99 +LOG_LEVEL_ALERTS="alerts"=100 +LOG_LEVEL_CRITICAL="critical"=101 +LOG_LEVEL_DEBUGGING="debugging"=102 +LOG_LEVEL_EMERGENCIES="emergencies"=103 +LOG_LEVEL_ERRORS="errors"=104 +LOG_LEVEL_INFORMATIONAL="informational"=105 +LOG_LEVEL_NOTIFICATIONS="notifications"=106 +LOG_LEVEL_WARNINGS="warnings"=107 +LOG_LEVEL_DISABLE="disable"=108 +LOG_LEVEL_INACTIVE="inactive"=109 +INTERVAL="interval"=110 +FRAGMENTS="fragments"=111 +TIME_RANGE="time-range"=112 +CONTROLLER="controller"=113 +OUTSIDE="outside"=114 +LINE_COMMENT=115 +EXIT="exit"=116 +AUI="aui"=117 +AUTO="auto"=118 +BNC="bnc"=119 +FULL="full"=120 +BASET="baseT"=121 +BASETX="baseTX"=122 +NAMEIF="nameif"=123 +VLAN="vlan"=124 +SPEED="speed"=125 +DUPLEX="duplex"=126 +DDNS="ddns"=127 +FORWARD="forward"=128 +DELAY="delay"=129 +HOLD_TIME="hold-time"=130 +IPV6_C="ipv6"=131 +MAC_ADDRESS="mac-address"=132 +MULTICAST="multicast"=133 +PPPOE=134 +SEC_LEVEL="security-level"=135 +SHUTDOWN="shutdown"=136 +ADDRESS="address"=137 +DHCP="dhcp"=138 +STANDBY="standby"=139 +SWITCHPORT="switchport"=140 +ACCESS="access"=141 +SCOPY="scopy"=142 +REMARK="remark"=143 +ACCESS_GROUP="access-group"=144 +COLON_COMMENT=145 +CLOSING_PAREN=146 +GLOBAL="global"=147 +STATIC="static"=148 +COMMA=149 +NORANDOMSEQ="norandomseq"=150 +NETMASK="netmask"=151 +SECONDARY="secondary"=152 +SETROUTE="setroute"=153 +Whitespace=154 +HEX_CONST=155 +NEG_INT_CONST=156 +DIGIT=157 +HEXDIGIT=158 +NUMBER_ADDRESS_OR_WORD=159 +PIPE_CHAR=160 +NUMBER_SIGN=161 +PERCENT=162 +AMPERSAND=163 +APOSTROPHE=164 +STAR=165 +PLUS=166 +MINUS=167 +DOT=168 +SLASH=169 +COLON=170 +SEMICOLON=171 +LESS_THAN=172 +EQUALS=173 +GREATER_THAN=174 +QUESTION=175 +COMMERCIAL_AT=176 +OPENING_SQUARE=177 +CLOSING_SQUARE=178 +CARET=179 +UNDERLINE=180 +OPENING_BRACE=181 +CLOSING_BRACE=182 +TILDE=183 +EXLAMATION=184 diff --git a/src/parsers/pix.g b/src/parsers/pix.g index 59dc56906..5b902a007 100644 --- a/src/parsers/pix.g +++ b/src/parsers/pix.g @@ -174,6 +174,8 @@ cfgfile : no_commands | timeout_command + | + dns_command | unknown_command | @@ -299,7 +301,10 @@ named_object_description : DESCRIPTION } ; -host_addr : (HOST (h:IPV4 | v6:IPV6)) +host_addr : HOST single_addr + ; + +single_addr : (h:IPV4 | v6:IPV6) { importer->setCurrentLineNumber(LT(0)->getLine()); if (h) @@ -802,6 +807,13 @@ unknown_command : WORD } ; +//**************************************************************** +dns_command : DNS + { + consumeUntil(NEWLINE); + } + ; + //**************************************************************** no_commands : NO { @@ -1635,7 +1647,13 @@ ssh_command : SSH importer->clear(); } ( - ( TIMEOUT INT_CONST ) | + ( TIMEOUT INT_CONST ) + { + // set ssh timeout here + } + | + SCOPY + | ( hostaddr_expr { @@ -1895,16 +1913,21 @@ global_top_level_command : ; static_top_level_command : - STATIC OPENING_PAREN prenat_intf:WORD - COMMA postnat_intf:WORD CLOSING_PAREN + STATIC { importer->clear(); + } + OPENING_PAREN + interface_label { importer->prenat_interface = LT(0)->getText(); } + COMMA + interface_label { importer->postnat_interface = LT(0)->getText(); } + CLOSING_PAREN + { importer->setCurrentLineNumber(LT(0)->getLine()); importer->newUnidirRuleSet("nat", libfwbuilder::NAT::TYPENAME ); - *dbg << " DNAT rule " << std::endl; + importer->newNATRule(); + *dbg << " DNAT rule "; importer->rule_type = libfwbuilder::NATRule::DNAT; - importer->prenat_interface = prenat_intf->getText(); - importer->postnat_interface = postnat_intf->getText(); } // Hostname or A.B.C.D Global or mapped address // interface Global address overload from interface @@ -1918,6 +1941,7 @@ static_top_level_command : NEWLINE { importer->pushNATRule(); + *dbg << std::endl; } ; @@ -1929,12 +1953,12 @@ static_starts_with_hostaddr : static_real_addr_match - static_command_common_last_parameters + ( static_command_common_last_parameters )* ; static_mapped_addr_match : ( - host_addr + single_addr { importer->mapped_a = importer->tmp_a; importer->mapped_nm = importer->tmp_nm; @@ -1950,7 +1974,7 @@ static_mapped_addr_match : static_real_addr_match : ( - host_addr // real + single_addr // real { importer->real_a = importer->tmp_a; importer->real_nm = importer->tmp_nm; @@ -1966,7 +1990,7 @@ static_real_addr_match : static_starts_with_tcp_udp : ( TCP | UDP ) { importer->protocol = LT(0)->getText(); - *dbg << " SERVICE TCP/UDP" << LT(0)->getText() << " "; + *dbg << " SERVICE TCP/UDP " << LT(0)->getText() << " "; } // Hostname or A.B.C.D Global or mapped address // interface Global address overload from interface @@ -1980,7 +2004,7 @@ static_starts_with_tcp_udp : ( TCP | UDP ) tcp_udp_port_spec { importer->mapped_port_spec = importer->tmp_port_spec_2; - *dbg << "mapped port " << importer->mapped_port_spec; + *dbg << "mapped port " << importer->mapped_port_spec << " "; } // Hostname or A.B.C.D Real IP address of the host or hosts @@ -1995,10 +2019,10 @@ static_starts_with_tcp_udp : ( TCP | UDP ) tcp_udp_port_spec { importer->real_port_spec = importer->tmp_port_spec_2; - *dbg << "real port " << importer->real_port_spec; + *dbg << "real port " << importer->real_port_spec << " "; } - static_command_common_last_parameters + ( static_command_common_last_parameters )* ; static_command_common_last_parameters : @@ -2008,17 +2032,26 @@ static_command_common_last_parameters : // norandomseq Disable TCP sequence number randomization // tcp Configure TCP specific parameters // udp Configure UDP specific parameters - NETMASK nm:IPv4 + // + + DNS + { + importer->addMessageToLog( + "Warning: 'static' command option 'dns' is not supported"); + } + | + NORANDOMSEQ + { + importer->addMessageToLog( + "Warning: 'static' command option 'norandomseq' is not supported"); + } + | + NETMASK nm:IPV4 { importer->mapped_nm = nm->getText(); } | - (TCP | UDP) - { - // <0-65535> The maximum number of simultaneous tcp connections - - } - | + (TCP | UDP)? max_conn:INT_CONST (max_emb_conn:INT_CONST)? { importer->static_max_conn = max_conn->getText(); @@ -2055,12 +2088,14 @@ tokens SPEED = "speed"; DUPLEX = "duplex"; DELAY = "delay"; + DNS = "dns"; DDNS = "ddns"; FORWARD = "forward"; HOLD_TIME = "hold-time"; IPV6_C = "ipv6"; MAC_ADDRESS = "mac-address"; MULTICAST = "multicast"; + NETMASK = "netmask"; INTERVAL = "interval"; @@ -2209,6 +2244,9 @@ tokens TRACEROUTE = "traceroute"; UNREACHABLE = "unreachable"; + NORANDOMSEQ = "norandomseq"; + + SCOPY = "scopy"; } LINE_COMMENT : "!" (~('\r' | '\n'))* NEWLINE ; @@ -2283,8 +2321,10 @@ NUMBER_ADDRESS_OR_WORD : ) ) | +// making sure ',' '(' ')' are not part of WORD ( 'a'..'z' | 'A'..'Z' | '$' ) - ( '!'..'\'' | '*'..'/' | '0'..'9' | ':' | ';' | '<' | '=' | '>' | + ( '!'..'\'' | '*' | '+' | '-' | '.' | '/' | '0'..'9' | ':' | + ';' | '<' | '=' | '>' | '?' | '@' | 'A'..'Z' | '\\' | '^' | '_' | '`' | 'a'..'z' )* { _ttype = WORD; } ) diff --git a/src/unit_tests/PIXImporterTest/PIXImporterTest.cpp b/src/unit_tests/PIXImporterTest/PIXImporterTest.cpp index 4fa35b81e..1a7e1a21a 100644 --- a/src/unit_tests/PIXImporterTest/PIXImporterTest.cpp +++ b/src/unit_tests/PIXImporterTest/PIXImporterTest.cpp @@ -230,6 +230,23 @@ void PIXImporterTest::PIX_7_Test() compareFwbFiles("test_data/pix7.fwb", "pix7.fwb"); } +void PIXImporterTest::PIX_7_NAT_Test() +{ + platform = "pix"; + + std::istringstream instream(openTestFile("test_data/pix7-nat.test")); + + Importer* imp = new PIXImporter(lib, instream, logger, "test_fw"); + CPPUNIT_ASSERT_NO_THROW( imp->run() ); + imp->finalize(); + + db->setPredictableIds(); + db->saveFile("pix7-nat.fwb"); + + compareResults(logger, "test_data/pix7-nat.output", "pix7-nat.output"); + compareFwbFiles("test_data/pix7-nat.fwb", "pix7-nat.fwb"); +} + void PIXImporterTest::ASA_8_0_Test() { platform = "pix"; diff --git a/src/unit_tests/PIXImporterTest/PIXImporterTest.h b/src/unit_tests/PIXImporterTest/PIXImporterTest.h index d4da7ea25..f6217374e 100644 --- a/src/unit_tests/PIXImporterTest/PIXImporterTest.h +++ b/src/unit_tests/PIXImporterTest/PIXImporterTest.h @@ -60,6 +60,7 @@ public: void PIX_6_Test(); void PIX_7_Test(); + void PIX_7_NAT_Test(); void ASA_8_0_Test(); void ASA_8_3_Test(); void ObjectsAndGroupsTest(); @@ -69,6 +70,7 @@ public: CPPUNIT_TEST_SUITE(PIXImporterTest); CPPUNIT_TEST(PIX_6_Test); CPPUNIT_TEST(PIX_7_Test); + CPPUNIT_TEST(PIX_7_NAT_Test); CPPUNIT_TEST(ASA_8_0_Test); CPPUNIT_TEST(ASA_8_3_Test); CPPUNIT_TEST(ObjectsAndGroupsTest); diff --git a/src/unit_tests/PIXImporterTest/test_data/asa8.3.output b/src/unit_tests/PIXImporterTest/test_data/asa8.3.output index dfc528aa9..5f156561f 100644 --- a/src/unit_tests/PIXImporterTest/test_data/asa8.3.output +++ b/src/unit_tests/PIXImporterTest/test_data/asa8.3.output @@ -34,7 +34,6 @@ Warning: interface Ethernet0/6 was not imported because it is in "shutdown" mode New interface: Ethernet0/7 Warning: interface Ethernet0/7 was not imported because it is in "shutdown" mode Named object (address) internal_subnet_1Named object (address) internal_subnet_2Named object (address) Internal_netNamed object (address) hostA:eth0Ruleset: outside_acl_in -Parser error: line 91:5: unexpected token: scopy Ruleset: ssh_commands_inside Interface Vlan1 ruleset ssh_commands_inside direction 'in' Ruleset: ssh_commands_inside diff --git a/src/unit_tests/PIXImporterTest/test_data/pix6.fwb b/src/unit_tests/PIXImporterTest/test_data/pix6.fwb index 86b8eb86e..09443348a 100644 --- a/src/unit_tests/PIXImporterTest/test_data/pix6.fwb +++ b/src/unit_tests/PIXImporterTest/test_data/pix6.fwb @@ -1,6 +1,6 @@ - + @@ -1163,7 +1163,7 @@ - + diff --git a/src/unit_tests/PIXImporterTest/test_data/pix6.output b/src/unit_tests/PIXImporterTest/test_data/pix6.output index 67e1288de..7acd40fb0 100644 --- a/src/unit_tests/PIXImporterTest/test_data/pix6.output +++ b/src/unit_tests/PIXImporterTest/test_data/pix6.output @@ -31,7 +31,7 @@ Rule comment: 10 ( global ) Ruleset: outside_acl_in Rule comment: using swatch to automatically Ruleset: outside_acl_in -Rule comment: block probing ssh connections, so no +Rule comment: block probing ssh connections , so no Ruleset: outside_acl_in Rule comment: need to limit Ruleset: outside_acl_in diff --git a/src/unit_tests/PIXImporterTest/test_data/pix7-nat.fwb b/src/unit_tests/PIXImporterTest/test_data/pix7-nat.fwb new file mode 100644 index 000000000..ab1ce9eef --- /dev/null +++ b/src/unit_tests/PIXImporterTest/test_data/pix7-nat.fwb @@ -0,0 +1,1174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + established + + established + -m state --state ESTABLISHED,RELATED + established + + + + established + + established + -m state --state ESTABLISHED,RELATED + established + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -m record_rpc + + + + + + + + + + -m irc + + + + + + + + + + -m psd --psd-weight-threshold 5 --psd-delay-threshold 10000 + + + + + + + + + + -m string --string test_pattern + + + + + + + + + + -m talk + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/unit_tests/PIXImporterTest/test_data/pix7-nat.output b/src/unit_tests/PIXImporterTest/test_data/pix7-nat.output new file mode 100644 index 000000000..ed5a39fe9 --- /dev/null +++ b/src/unit_tests/PIXImporterTest/test_data/pix7-nat.output @@ -0,0 +1,63 @@ +Version: 7.2 +Host name: pix1 +Parser warning: "names" section detected. Import of configuration that uses "names" is not supported at this time +Name 1.2.3.4 gw +Name 192.168.3.0 fake_network +Name 192.168.4.1 inside_ip +New interface: Ethernet0 +New interface: Ethernet0.101 +Interface parameters: outside +Interface label: outside +Interface address: 192.0.2.253/255.255.255.0 +New interface: Ethernet0.102 +Interface parameters: dmz20 +Interface label: dmz20 +Interface address: 10.0.0.253/255.255.255.0 +Parser warning: failover IP detected. Failover is not supported by import at this time +New interface: Ethernet1 +Interface parameters: inside +Interface label: inside +Interface address: 10.1.1.206/255.255.255.0 +New interface: Ethernet2 +Warning: interface Ethernet2 was not imported because it is in "shutdown" mode +New interface: Ethernet3 +Warning: interface Ethernet3 was not imported because it is in "shutdown" mode +New interface: Ethernet4 +Warning: interface Ethernet4 was not imported because it is in "shutdown" mode +New interface: Ethernet5 +Warning: interface Ethernet5 was not imported because it is in "shutdown" mode +New interface: Ethernet6 +Warning: interface Ethernet6 was not imported because it is in "shutdown" mode +Object Group (network) outside.id12051X6282.src.net.0Object Group (network) outside.id12051X6282.src.net.1Object Group (network) outside.id12051X6282.src.net.2Object Group (network) network-zone-insideObject Group (network) network-zone-dmz20Ruleset: outside_in +Ruleset: outside_in +Ruleset: outside_in +Ruleset: outside_in +Ruleset: inside_out +Ruleset: inside_out +Ruleset: inside_out +Ruleset: inside_out +Ruleset: inside_out +Ruleset: inside_in +Ruleset: inside_in +Ruleset: inside_in +Ruleset: inside_in +Ruleset: inside_in +Ruleset: id12251X6282.0 +Ruleset: id12594X2458.0 +Ruleset: nat +Ruleset: nat +Ruleset: nat +Ruleset: nat +Ruleset: nat +Ruleset: nat +Ruleset: nat +Ruleset: nat +Interface Ethernet0.101 ruleset outside_in direction 'in' +Interface Ethernet1 ruleset inside_in direction 'in' +Interface Ethernet1 ruleset inside_out direction 'out' +Ruleset: ssh_commands_inside +Interface Ethernet1 ruleset ssh_commands_inside direction 'in' +Ruleset: ssh_commands_inside +Interface Ethernet1 ruleset ssh_commands_inside direction 'in' +Ruleset: ssh_commands_outside +Interface Ethernet0.101 ruleset ssh_commands_outside direction 'in' diff --git a/src/unit_tests/PIXImporterTest/test_data/pix7-nat.test b/src/unit_tests/PIXImporterTest/test_data/pix7-nat.test index 0841f0a99..8380f7ec4 100644 --- a/src/unit_tests/PIXImporterTest/test_data/pix7-nat.test +++ b/src/unit_tests/PIXImporterTest/test_data/pix7-nat.test @@ -38,6 +38,7 @@ interface Ethernet1 ip address 10.1.1.206 255.255.255.0 ! interface Ethernet2 + shutdown description LAN/STATE Failover Interface speed 10 ! @@ -78,6 +79,13 @@ object-group network outside.id12051X6282.src.net.1 object-group network outside.id12051X6282.src.net.2 network-object host 10.0.0.253 network-object host 10.0.0.254 + +object-group network network-zone-inside + network-object 10.1.1.0 255.255.255.0 +object-group network network-zone-dmz20 + network-object 10.0.0.0 255.255.255.0 + + access-list outside_in extended deny ip object-group outside.id12051X6282.src.net.0 any log warnings access-list outside_in extended deny ip object-group outside.id12051X6282.src.net.1 any log warnings access-list outside_in extended deny ip object-group outside.id12051X6282.src.net.2 any log warnings @@ -92,10 +100,10 @@ access-list inside_in extended deny ip any object-group outside.id12051X6282.src access-list inside_in extended deny ip any object-group outside.id12051X6282.src.net.2 log warnings access-list inside_in extended permit ip 10.1.1.0 255.255.255.0 any access-list inside_in extended deny ip any any log warnings + access-list id12251X6282.0 extended permit ip 10.1.1.0 255.255.255.0 any -access-group inside_in in interface inside -access-group outside_in in interface outside +access-list id12594X2458.0 permit tcp host 10.1.1.43 eq www any pager lines 24 logging enable @@ -120,12 +128,28 @@ failover link failover Ethernet2 failover interface ip failover 172.17.1.253 255.255.255.252 standby 172.17.1.254 no asdm history enable arp timeout 14400 -nat-control -global (outside) 1 interface -nat (inside) 1 access-list id12251X6282.0 + +! nat-control +! global (outside) 1 interface +! nat (inside) 1 access-list id12251X6282.0 + +static (inside,dmz20) 10.0.0.16 10.1.1.16 netmask 255.255.255.240 +static (inside,dmz20) 10.0.0.100 10.1.1.100 netmask 255.255.255.255 +static (inside,dmz20) interface 10.1.1.111 +static (inside,outside) tcp 10.5.80.16 80 10.1.1.16 8080 netmask 255.255.255.240 0 0 +static (inside,outside) tcp 10.5.80.200 80 10.10.1.200 8080 netmask 255.255.255.255 0 0 + +static (inside,outside) tcp interface www access-list id12594X2458.0 0 0 +static (inside,outside) tcp interface 80 access-list id12594X2458.0 0 0 +static (inside,outside) interface access-list id12594X2458.0 0 0 + + + access-group outside_in in interface outside access-group inside_in in interface inside access-group inside_out out interface inside + + route inside 192.168.10.0 255.255.255.0 10.1.1.254 1 route inside 10.1.2.0 255.255.255.0 10.1.1.201 1 timeout xlate 3:00:00 diff --git a/src/unit_tests/PIXImporterTest/test_data/pix7.output b/src/unit_tests/PIXImporterTest/test_data/pix7.output index dfe34d154..da6fa5faf 100644 --- a/src/unit_tests/PIXImporterTest/test_data/pix7.output +++ b/src/unit_tests/PIXImporterTest/test_data/pix7.output @@ -48,7 +48,6 @@ Interface Ethernet0.101 ruleset outside_in direction 'in' Interface Ethernet0.101 ruleset outside_in direction 'in' Interface Ethernet1 ruleset inside_in direction 'in' Interface Ethernet1 ruleset inside_out direction 'out' -Parser error: line 163:5: unexpected token: scopy Ruleset: ssh_commands_inside Interface Ethernet1 ruleset ssh_commands_inside direction 'in' Ruleset: ssh_commands_inside