From: Josh Date: Thu, 19 Jun 2014 20:54:13 +0000 (-0400) Subject: refactoring. Shortening variable length. Changing main conversion loop. Enabling... X-Git-Tag: 3.0.0-233~1175^2~25^2~2^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8c3876fe6a5da1da95d4b7389d52f7cfb3f2a3a;p=thirdparty%2Fsnort3.git refactoring. Shortening variable length. Changing main conversion loop. Enabling options --- diff --git a/tools/snort2lua/config_states/config_api.cc b/tools/snort2lua/config_states/config_api.cc index c06eb65db..4a071f990 100644 --- a/tools/snort2lua/config_states/config_api.cc +++ b/tools/snort2lua/config_states/config_api.cc @@ -23,11 +23,13 @@ extern const ConvertMap *autogenerate_decode_rules_map; +extern const ConvertMap *checksum_map; extern const ConvertMap *paf_max_map; const std::vector config_api = { autogenerate_decode_rules_map, + checksum_map, paf_max_map, }; diff --git a/tools/snort2lua/config_states/config_options.cc b/tools/snort2lua/config_states/config_options.cc index 63a91457e..8995c9dee 100644 --- a/tools/snort2lua/config_states/config_options.cc +++ b/tools/snort2lua/config_states/config_options.cc @@ -58,10 +58,10 @@ public: bool PafMax::convert(std::stringstream& data_stream) { - converter->open_table("stream_tcp"); + cv->open_table("stream_tcp"); bool retval = parse_int_option("paf_max", data_stream); - converter->close_table(); - return retval; + cv->close_table(); + return retval; } /******* A P I ***********/ @@ -98,3 +98,46 @@ static const ConvertMap config_autogenerate_decode_rules = }; const ConvertMap* autogenerate_decode_rules_map = &config_autogenerate_decode_rules; + + + +/********************************************* + ************* Checksum ******************** + *********************************************/ + +namespace { + +class Checksum : public ConversionState +{ +public: + Checksum(Converter* cv) : ConversionState(cv) {}; + virtual ~Checksum() {}; + virtual bool convert(std::stringstream& data_stream); +}; + +} // namespace + + +bool Checksum::convert(std::stringstream& data_stream) +{ + cv->open_table("nework"); + bool retval = parse_string_option("checksum_eval", data_stream); + cv->close_table(); + return retval; +} + +/******* A P I ***********/ + +static ConversionState* checksum_ctor(Converter* cv) +{ + return new Checksum(cv); +} + +static const ConvertMap config_checksum = +{ + "checksum_mode", + checksum_ctor, +}; + + +const ConvertMap* checksum_map = &config_checksum; diff --git a/tools/snort2lua/conversion_state.h b/tools/snort2lua/conversion_state.h index 0d12de0fb..2ce0f4f21 100644 --- a/tools/snort2lua/conversion_state.h +++ b/tools/snort2lua/conversion_state.h @@ -33,12 +33,12 @@ class ConversionState { public: - ConversionState(Converter *cv){ converter = cv; } + ConversionState(Converter *cv){ this->cv = cv; } virtual ~ConversionState() {}; virtual bool convert(std::stringstream& data)=0; protected: - Converter* converter; + Converter* cv; inline bool parse_string_option(std::string opt_name, std::stringstream& stream) { @@ -49,11 +49,11 @@ protected: if(val.back() == ',') val.pop_back(); - converter->add_option_to_table(opt_name, val); + cv->add_option_to_table(opt_name, val); return true; } - converter->add_comment_to_table("snort.conf missing argument for: " + opt_name + " "); + cv->add_comment_to_table("snort.conf missing argument for: " + opt_name + " "); return false; } @@ -63,11 +63,11 @@ protected: if(stream >> val) { - converter->add_option_to_table(opt_name, val); + cv->add_option_to_table(opt_name, val); return true; } - converter->add_comment_to_table("snort.conf missing argument for: " + opt_name + " "); + cv->add_comment_to_table("snort.conf missing argument for: " + opt_name + " "); return false; } @@ -81,7 +81,7 @@ protected: return false; while (stream >> elem && elem != "}") - retval = converter->add_list_to_table(list_name, elem) && retval; + retval = cv->add_list_to_table(list_name, elem) && retval; return retval; } @@ -95,12 +95,12 @@ protected: return false; else if(!val.compare("yes")) - return converter->add_option_to_table(opt_name, true); + return cv->add_option_to_table(opt_name, true); else if (!val.compare("no")) - return converter->add_option_to_table(opt_name, false); + return cv->add_option_to_table(opt_name, false); - converter->add_comment_to_table("Unable to convert_option: " + opt_name + ' ' + val); + cv->add_comment_to_table("Unable to convert_option: " + opt_name + ' ' + val); return false; } @@ -128,12 +128,12 @@ protected: { std::stringstream tmp; tmp << "0x" << std::hex << dig; - retval = converter->add_list_to_table(list_name, tmp.str()) && retval; + retval = cv->add_list_to_table(list_name, tmp.str()) && retval; } else { - converter->add_comment_to_table("Unable to convert " + elem + + cv->add_comment_to_table("Unable to convert " + elem + "!! The element must be a single charachter or number between 0 - 255 inclusive"); retval = false; } @@ -158,14 +158,14 @@ protected: if(tmp.size() > 0) tmp.erase(tmp.begin()); - return converter->add_option_to_table("--" + list_name, tmp ); + return cv->add_option_to_table("--" + list_name, tmp ); } inline bool open_table_add_option(std::string table_name, std::string opt_name, std::string val) { - bool tmpval = converter->open_table(table_name); - tmpval = converter->add_option_to_table(opt_name, val) && tmpval; - converter->close_table(); + bool tmpval = cv->open_table(table_name); + tmpval = cv->add_option_to_table(opt_name, val) && tmpval; + cv->close_table(); return tmpval; } diff --git a/tools/snort2lua/data/cv_table.cc b/tools/snort2lua/data/cv_table.cc index 6a7b837a3..03e1de5e3 100644 --- a/tools/snort2lua/data/cv_table.cc +++ b/tools/snort2lua/data/cv_table.cc @@ -143,12 +143,13 @@ bool Table::has_option(std::string name, std::string val) } -void Table::add_comment(std::string comment) +void Table::add_comment(std::string c) { - if (comment.size() > 80) - comment.insert(76, "..."); + if (c.size() > 80) + c.insert(76, "..."); - comments.push_back(std::string(comment, 0, 77)); + if (std::find(comments.begin(), comments.end(), c) == comments.end()) + comments.push_back(std::string(c, 0, 79)); } std::ostream &operator<<( std::ostream& out, const Table &t) diff --git a/tools/snort2lua/init_state.cc b/tools/snort2lua/init_state.cc index 74c337caf..4d2539421 100644 --- a/tools/snort2lua/init_state.cc +++ b/tools/snort2lua/init_state.cc @@ -34,31 +34,15 @@ bool InitState::convert(std::stringstream& data_stream) { std::string keyword; + if (!(data_stream >> keyword)) + return false; - if ( data_stream >> keyword ) + const ConvertMap *map = util::find_map(keyword_api, keyword); + if (map) { - - if( keyword.front() == '#') - { - std::cout << "THIS SHOULD NEVER OCCUR" << std::endl; - keyword.erase(keyword.begin()); - converter->add_comment_to_file(keyword, data_stream); - data_stream.setstate(std::basic_ios::eofbit); - return true; - } - else - { - const ConvertMap *map = util::find_map(keyword_api, keyword); - - if (map) - { - converter->set_state(map->ctor(converter)); - return true; - } - } + cv->set_state(map->ctor(cv)); + return true; } -// out << "--" << data_stream.str() << std::endl; -// data_stream.setstate(std::basic_ios::eofbit); return false; } diff --git a/tools/snort2lua/keyword_states/kws_config.cc b/tools/snort2lua/keyword_states/kws_config.cc index a1e6fcbfd..4d0467200 100644 --- a/tools/snort2lua/keyword_states/kws_config.cc +++ b/tools/snort2lua/keyword_states/kws_config.cc @@ -54,7 +54,7 @@ bool Config::convert(std::stringstream& data_stream) const ConvertMap* map = util::find_map(config_api, keyword); if (map) { - converter->set_state(map->ctor(converter)); + cv->set_state(map->ctor(cv)); return true; } } diff --git a/tools/snort2lua/keyword_states/kws_include.cc b/tools/snort2lua/keyword_states/kws_include.cc index c0fffc59f..4cc09bbb0 100644 --- a/tools/snort2lua/keyword_states/kws_include.cc +++ b/tools/snort2lua/keyword_states/kws_include.cc @@ -50,7 +50,7 @@ bool Include::convert(std::stringstream& data_stream) const ConvertMap* map = util::find_map(output_api, keyword); if (map) { - converter->set_state(map->ctor(converter)); + cv->set_state(map->ctor(cv)); return true; } } diff --git a/tools/snort2lua/keyword_states/kws_output.cc b/tools/snort2lua/keyword_states/kws_output.cc index 76dccd99d..576d1bc02 100644 --- a/tools/snort2lua/keyword_states/kws_output.cc +++ b/tools/snort2lua/keyword_states/kws_output.cc @@ -51,7 +51,7 @@ bool Output::convert(std::stringstream& data_stream) const ConvertMap* map = util::find_map(output_api, keyword); if (map) { - converter->set_state(map->ctor(converter)); + cv->set_state(map->ctor(cv)); return true; } } diff --git a/tools/snort2lua/keyword_states/kws_preprocessor.cc b/tools/snort2lua/keyword_states/kws_preprocessor.cc index 25d04a4af..3b40682d3 100644 --- a/tools/snort2lua/keyword_states/kws_preprocessor.cc +++ b/tools/snort2lua/keyword_states/kws_preprocessor.cc @@ -52,7 +52,7 @@ bool Preprocessor::convert(std::stringstream& data_stream) const ConvertMap* map = util::find_map(preprocessor_api, keyword); if (map) { - converter->set_state(map->ctor(converter)); + cv->set_state(map->ctor(cv)); return true; } } diff --git a/tools/snort2lua/keyword_states/kws_suppress.cc b/tools/snort2lua/keyword_states/kws_suppress.cc index 5608c00cd..0af0587fa 100644 --- a/tools/snort2lua/keyword_states/kws_suppress.cc +++ b/tools/snort2lua/keyword_states/kws_suppress.cc @@ -45,10 +45,10 @@ bool Suppress::convert(std::stringstream& data_stream) bool retval = true; std::string keyword; - converter->open_table("suppress"); - converter->add_deprecated_comment("gen_id", "gid"); - converter->add_deprecated_comment("sig_id", "sid"); - converter->open_table(); + cv->open_table("suppress"); + cv->add_deprecated_comment("gen_id", "gid"); + cv->add_deprecated_comment("sig_id", "sid"); + cv->open_table(); while(data_stream >> keyword) { diff --git a/tools/snort2lua/keyword_states/kws_var.cc b/tools/snort2lua/keyword_states/kws_var.cc index 17d9fdd2a..e548c1bec 100644 --- a/tools/snort2lua/keyword_states/kws_var.cc +++ b/tools/snort2lua/keyword_states/kws_var.cc @@ -53,7 +53,7 @@ Var::Var(Converter* cv) : ConversionState(cv) bool Var::convert(std::stringstream& data_stream) { - std::string ports;// converter->print_line(data_stream); + std::string ports;// cv->print_line(data_stream); if (first_line) if (!(data_stream >> keyword)) @@ -77,13 +77,13 @@ bool Var::convert(std::stringstream& data_stream) util::split(ports, ',', port_list); for(std::string elem : port_list) - retval = converter->add_variable(keyword, elem) && retval; + retval = cv->add_variable(keyword, elem) && retval; return retval; } else { - return converter->add_variable(keyword, ports); + return cv->add_variable(keyword, ports); } } diff --git a/tools/snort2lua/preprocessor_states/pps_arpspoof.cc b/tools/snort2lua/preprocessor_states/pps_arpspoof.cc index e513e283f..41a4f689b 100644 --- a/tools/snort2lua/preprocessor_states/pps_arpspoof.cc +++ b/tools/snort2lua/preprocessor_states/pps_arpspoof.cc @@ -42,13 +42,13 @@ bool ArpSpoof::convert(std::stringstream& data_stream) { std::string keyword; bool retval = true; - converter->open_table("arp_spoof"); + cv->open_table("arp_spoof"); while(data_stream >> keyword) { if(!keyword.compare("-unicast")) - retval = converter->add_option_to_table("unicast", true) && retval; + retval = cv->add_option_to_table("unicast", true) && retval; else retval = false; @@ -97,16 +97,16 @@ bool ArpSpoofHost::convert(std::stringstream& data_stream) std::string ip, mac; bool retval = true; - converter->open_table("arp_spoof"); - converter->open_table("hosts"); + cv->open_table("arp_spoof"); + cv->open_table("hosts"); while(data_stream >> ip && data_stream >> mac) { - converter->open_table(); - converter->add_option_to_table("ip", ip); - converter->add_option_to_table("mac", mac); - converter->close_table(); + cv->open_table(); + cv->add_option_to_table("ip", ip); + cv->add_option_to_table("mac", mac); + cv->close_table(); ip.clear(); mac.clear(); diff --git a/tools/snort2lua/preprocessor_states/pps_ftp_telnet.cc b/tools/snort2lua/preprocessor_states/pps_ftp_telnet.cc index 3ba1a98f9..8beb265bf 100644 --- a/tools/snort2lua/preprocessor_states/pps_ftp_telnet.cc +++ b/tools/snort2lua/preprocessor_states/pps_ftp_telnet.cc @@ -45,23 +45,23 @@ bool FtpTelnet::add_ftp_n_telnet_option(std::string opt_name, bool val) { bool retval; - converter->open_table("telnet"); - retval = converter->add_option_to_table(opt_name, val); - converter->close_table(); - converter->open_table("ftp_server"); - retval = converter->add_option_to_table(opt_name, val) && retval; - converter->close_table(); + cv->open_table("telnet"); + retval = cv->add_option_to_table(opt_name, val); + cv->close_table(); + cv->open_table("ftp_server"); + retval = cv->add_option_to_table(opt_name, val) && retval; + cv->close_table(); return retval; } void FtpTelnet::add_ftp_n_telnet_deprecated(std::string opt_name) { - converter->open_table("telnet"); - converter->add_deprecated_comment(opt_name); - converter->close_table(); - converter->open_table("ftp_server"); - converter->add_deprecated_comment(opt_name); - converter->close_table(); + cv->open_table("telnet"); + cv->add_deprecated_comment(opt_name); + cv->close_table(); + cv->open_table("ftp_server"); + cv->add_deprecated_comment(opt_name); + cv->close_table(); } bool FtpTelnet::convert(std::stringstream& data_stream) @@ -78,7 +78,7 @@ bool FtpTelnet::convert(std::stringstream& data_stream) { if(keyword.compare("global")) { - converter->log_error("preprocessor ftp_telnet: requires the 'global' keyword"); + cv->log_error("preprocessor ftp_telnet: requires the 'global' keyword"); return false; } } diff --git a/tools/snort2lua/preprocessor_states/pps_ftp_telnet_protocol.cc b/tools/snort2lua/preprocessor_states/pps_ftp_telnet_protocol.cc index ef5d90540..06998c928 100644 --- a/tools/snort2lua/preprocessor_states/pps_ftp_telnet_protocol.cc +++ b/tools/snort2lua/preprocessor_states/pps_ftp_telnet_protocol.cc @@ -87,12 +87,12 @@ bool FtpServer::parse_alt_max_cmd(std::stringstream& data_stream) if(!(data_stream >> i_val)) return false; - converter->open_table("alt_max_param"); - converter->open_table(); - converter->add_option_to_table("length", i_val); + cv->open_table("alt_max_param"); + cv->open_table(); + cv->add_option_to_table("length", i_val); tmpval = parse_curly_bracket_list("commands", data_stream); - converter->close_table(); - converter->close_table(); + cv->close_table(); + cv->close_table(); return tmpval; } @@ -109,17 +109,17 @@ bool FtpServer::parse_cmd_validity_cmd(std::stringstream& data_stream) return false; - converter->open_table("cmd_validity"); - converter->open_table(); - tmpval = converter->add_option_to_table("command", val); - tmpval = converter->add_list_to_table("format", elem) && tmpval; + cv->open_table("cmd_validity"); + cv->open_table(); + tmpval = cv->add_option_to_table("command", val); + tmpval = cv->add_list_to_table("format", elem) && tmpval; while((data_stream >> elem) && (elem != ">")) - tmpval = converter->add_list_to_table("format", elem) && tmpval; + tmpval = cv->add_list_to_table("format", elem) && tmpval; - converter->add_list_to_table("format", elem); - converter->close_table(); // anonymouse table - converter->close_table(); // "cmd_validity" table + cv->add_list_to_table("format", elem); + cv->close_table(); // anonymouse table + cv->close_table(); // "cmd_validity" table return tmpval; } @@ -131,12 +131,12 @@ bool FtpServer::convert(std::stringstream& data_stream) if (data_stream >> keyword) { if(!keyword.compare("default")) - converter->open_table("ftp_server"); + cv->open_table("ftp_server"); else { - converter->open_table("ftp_server_target_" + std::to_string(ftpsever_binding_id)); + cv->open_table("ftp_server_target_" + std::to_string(ftpsever_binding_id)); ftpsever_binding_id++; - converter->add_comment_to_table("Unable to create target based ftp configuration at this time!!!"); + cv->add_comment_to_table("Unable to create target based ftp configuration at this time!!!"); retval = false; } } @@ -151,7 +151,7 @@ bool FtpServer::convert(std::stringstream& data_stream) if(!keyword.compare("print_cmds")) - converter->add_option_to_table("print_cmds", true); + cv->add_option_to_table("print_cmds", true); else if(!keyword.compare("def_max_param_len")) tmpval = parse_int_option("def_max_param_len", data_stream); @@ -179,19 +179,19 @@ bool FtpServer::convert(std::stringstream& data_stream) else if(!keyword.compare("data_chan")) { - converter->add_deprecated_comment("data_chan", "ignore_data_chan"); - tmpval = converter->add_option_to_table("ignore_data_chan", true); + cv->add_deprecated_comment("data_chan", "ignore_data_chan"); + tmpval = cv->add_option_to_table("ignore_data_chan", true); } else if (!keyword.compare("ports")) { - converter->add_deprecated_comment("ports", "bindings"); - converter->add_comment_to_table("check bindings table for port information"); + cv->add_deprecated_comment("ports", "bindings"); + cv->add_comment_to_table("check bindings table for port information"); // add commented list for now std::string tmp = ""; while (data_stream >> keyword && keyword != "}") tmp += " " + keyword; - tmpval = converter->add_option_to_table("--ports", tmp + "}"); + tmpval = cv->add_option_to_table("--ports", tmp + "}"); } else @@ -218,12 +218,12 @@ bool FtpClient::convert(std::stringstream& data_stream) if (data_stream >> keyword) { if(!keyword.compare("default")) - converter->open_table("ftp_client"); + cv->open_table("ftp_client"); else { - converter->open_table("ftp_client_target_" + std::to_string(ftpclient_binding_id)); + cv->open_table("ftp_client_target_" + std::to_string(ftpclient_binding_id)); ftpclient_binding_id++; - converter->add_comment_to_table("Unable to create target based ftp configuration at this time!!!"); + cv->add_comment_to_table("Unable to create target based ftp configuration at this time!!!"); retval = false; } } @@ -255,7 +255,7 @@ bool FtpClient::convert(std::stringstream& data_stream) std::string tmp = ""; while (data_stream >> keyword && keyword != "}") tmp += " " + keyword; - tmpval = converter->add_option_to_table("--bounce_to", tmp + "}"); + tmpval = cv->add_option_to_table("--bounce_to", tmp + "}"); } else @@ -280,7 +280,7 @@ bool Telnet::convert(std::stringstream& data_stream) int i_val; bool retval = true; - converter->open_table("telnet"); + cv->open_table("telnet"); while(data_stream >> keyword) { @@ -288,24 +288,24 @@ bool Telnet::convert(std::stringstream& data_stream) if(!keyword.compare("ayt_attack_thresh")) { if(data_stream >> i_val) - tmpval = converter->add_option_to_table("ayt_attack_thresh", i_val); + tmpval = cv->add_option_to_table("ayt_attack_thresh", i_val); else tmpval = false; } else if(!keyword.compare("normalize")) - tmpval = converter->add_option_to_table("normalize", true); + tmpval = cv->add_option_to_table("normalize", true); else if(!keyword.compare("ports")) { - converter->add_deprecated_comment("ports", "bindings"); - converter->add_comment_to_table("check bindings table for port information"); + cv->add_deprecated_comment("ports", "bindings"); + cv->add_comment_to_table("check bindings table for port information"); // vvvv defined in ConversionState vvvv parse_curly_bracket_list("--ports", data_stream); // create a commented list of the ports } else if(!keyword.compare("detect_anomalies")) - tmpval = converter->add_option_to_table("detect_anomalies", true); + tmpval = cv->add_option_to_table("detect_anomalies", true); else tmpval = false; @@ -313,8 +313,6 @@ bool Telnet::convert(std::stringstream& data_stream) retval = tmpval && retval; } - - converter->close_table(); // not necessary but return retval; } @@ -331,17 +329,17 @@ bool FtpTelnetProtocol::convert(std::stringstream& data_stream) { if(!protocol.compare("telnet")) { - converter->set_state(new Telnet(converter)); + cv->set_state(new Telnet(cv)); } else if (!protocol.compare("ftp")) { if(data_stream >> protocol) { if(!protocol.compare("client")) - converter->set_state(new FtpClient(converter)); + cv->set_state(new FtpClient(cv)); else if (!protocol.compare("server")) - converter->set_state(new FtpServer(converter)); + cv->set_state(new FtpServer(cv)); else return false; diff --git a/tools/snort2lua/preprocessor_states/pps_http_inspect.cc b/tools/snort2lua/preprocessor_states/pps_http_inspect.cc index b2951c48f..d3b9a335b 100644 --- a/tools/snort2lua/preprocessor_states/pps_http_inspect.cc +++ b/tools/snort2lua/preprocessor_states/pps_http_inspect.cc @@ -58,11 +58,11 @@ bool HttpInspect::convert(std::stringstream& data_stream) { if(keyword.compare("global")) { - converter->log_error("preprocessor httpinspect: requires the 'global' keyword"); + cv->log_error("preprocessor httpinspect: requires the 'global' keyword"); return false; } } - converter->open_table("http_inspect"); + cv->open_table("http_inspect"); @@ -75,10 +75,10 @@ bool HttpInspect::convert(std::stringstream& data_stream) retval = parse_int_option("decompress_depth", data_stream) && retval; else if(!keyword.compare("detect_anomalous_servers")) - converter->add_option_to_table("detect_anomalous_servers", true); + cv->add_option_to_table("detect_anomalous_servers", true); else if(!keyword.compare("proxy_alert")) - converter->add_option_to_table("proxy_alert", true); + cv->add_option_to_table("proxy_alert", true); else if(!keyword.compare("max_gzip_mem")) retval = parse_int_option("max_gzip_mem", data_stream) && retval; @@ -87,7 +87,7 @@ bool HttpInspect::convert(std::stringstream& data_stream) retval = parse_int_option("memcap", data_stream) && retval; else if(!keyword.compare("disabled")) - converter->add_deprecated_comment("disabled"); + cv->add_deprecated_comment("disabled"); else if(!keyword.compare("b64_decode_depth")) retval = add_decode_option("b64_decode_depth", data_stream) && retval; @@ -112,14 +112,14 @@ bool HttpInspect::convert(std::stringstream& data_stream) if( (data_stream >> codemap) && (data_stream >> code_page)) { - converter->open_table("unicode_map"); - converter->add_option_to_table("map_file", codemap); - converter->add_option_to_table("code_page", code_page); - converter->close_table(); + cv->open_table("unicode_map"); + cv->add_option_to_table("map_file", codemap); + cv->add_option_to_table("code_page", code_page); + cv->close_table(); } else { - converter->add_comment_to_table("snort.conf missing argument for " + cv->add_comment_to_table("snort.conf missing argument for " "iis_unicode_map "); retval = false; } @@ -128,7 +128,7 @@ bool HttpInspect::convert(std::stringstream& data_stream) else { - converter->log_error("'preprocessor http_inspect: global' --> Invalid argument!!"); + cv->log_error("'preprocessor http_inspect: global' --> Invalid argument!!"); retval = false; } } @@ -142,14 +142,14 @@ bool HttpInspect::add_decode_option(std::string opt_name, std::stringstream& st if (stream >> val) { - converter->open_table("decode"); - converter->add_option_to_table(opt_name, val); - converter->close_table(); + cv->open_table("decode"); + cv->add_option_to_table(opt_name, val); + cv->close_table(); return true; } else { - converter->add_comment_to_table("snort.conf missing argument for " + + cv->add_comment_to_table("snort.conf missing argument for " + opt_name + " "); return false; } diff --git a/tools/snort2lua/preprocessor_states/pps_http_inspect_server.cc b/tools/snort2lua/preprocessor_states/pps_http_inspect_server.cc index cb2e06c3e..2d0136cc3 100644 --- a/tools/snort2lua/preprocessor_states/pps_http_inspect_server.cc +++ b/tools/snort2lua/preprocessor_states/pps_http_inspect_server.cc @@ -66,11 +66,11 @@ bool HttpInspectServer::convert(std::stringstream& data_stream) if(!keyword.compare("default")) { - converter->open_table("http_server"); + cv->open_table("http_server"); } else { - converter->open_table("http_server_" + std::to_string(binding_id)); + cv->open_table("http_server_" + std::to_string(binding_id)); binding_id++; // CREATE A BINDING HERE!! } @@ -81,52 +81,52 @@ bool HttpInspectServer::convert(std::stringstream& data_stream) bool tmpval = true; if (!keyword.compare("extended_response_inspection")) - tmpval = converter->add_option_to_table("extended_response_inspection", true); + tmpval = cv->add_option_to_table("extended_response_inspection", true); else if (!keyword.compare("allow_proxy_use")) - tmpval = converter->add_option_to_table("allow_proxy_use", true); + tmpval = cv->add_option_to_table("allow_proxy_use", true); else if (!keyword.compare("inspect_gzip")) - tmpval = converter->add_option_to_table("inspect_gzip", true); + tmpval = cv->add_option_to_table("inspect_gzip", true); else if (!keyword.compare("unlimited_decompress")) - tmpval = converter->add_option_to_table("unlimited_decompress", true); + tmpval = cv->add_option_to_table("unlimited_decompress", true); else if (!keyword.compare("normalize_javascript")) - tmpval = converter->add_option_to_table("normalize_javascript", true); + tmpval = cv->add_option_to_table("normalize_javascript", true); else if (!keyword.compare("enable_xff")) - tmpval = converter->add_option_to_table("enable_xff", true); + tmpval = cv->add_option_to_table("enable_xff", true); else if (!keyword.compare("extended_ascii_uri")) - tmpval = converter->add_option_to_table("extended_ascii_uri", true); + tmpval = cv->add_option_to_table("extended_ascii_uri", true); else if (!keyword.compare("non_strict")) - tmpval = converter->add_option_to_table("non_strict", true); + tmpval = cv->add_option_to_table("non_strict", true); else if (!keyword.compare("inspect_uri_only")) - tmpval = converter->add_option_to_table("inspect_uri_only", true); + tmpval = cv->add_option_to_table("inspect_uri_only", true); else if (!keyword.compare("tab_uri_delimiter")) - tmpval = converter->add_option_to_table("tab_uri_delimiter", true); + tmpval = cv->add_option_to_table("tab_uri_delimiter", true); else if (!keyword.compare("normalize_headers")) - tmpval = converter->add_option_to_table("normalize_headers", true); + tmpval = cv->add_option_to_table("normalize_headers", true); else if (!keyword.compare("normalize_utf")) - tmpval = converter->add_option_to_table("normalize_utf", true); + tmpval = cv->add_option_to_table("normalize_utf", true); else if (!keyword.compare("log_uri")) - tmpval = converter->add_option_to_table("log_uri", true); + tmpval = cv->add_option_to_table("log_uri", true); else if (!keyword.compare("normalize_cookies")) - tmpval = converter->add_option_to_table("normalize_cookies", true); + tmpval = cv->add_option_to_table("normalize_cookies", true); else if (!keyword.compare("log_hostname")) - tmpval = converter->add_option_to_table("log_hostname", true); + tmpval = cv->add_option_to_table("log_hostname", true); else if (!keyword.compare("no_pipeline_req")) - tmpval = converter->add_option_to_table("no_pipeline_req", true); + tmpval = cv->add_option_to_table("no_pipeline_req", true); else if (!keyword.compare("ascii")) tmpval = parse_yn_bool_option("ascii", data_stream); @@ -192,7 +192,7 @@ bool HttpInspectServer::convert(std::stringstream& data_stream) tmpval = parse_int_option("max_headers", data_stream); else if (!keyword.compare("no_alerts")) - converter->add_deprecated_comment("no_alerts"); + cv->add_deprecated_comment("no_alerts"); else if (!keyword.compare("decompress_swf")) tmpval = parse_bracketed_unsupported_list("decompress_swf", data_stream); @@ -208,26 +208,26 @@ bool HttpInspectServer::convert(std::stringstream& data_stream) else if (!keyword.compare("non_rfc_char")) { - converter->add_deprecated_comment("non_rfc_char", "non_rfc_chars"); + cv->add_deprecated_comment("non_rfc_char", "non_rfc_chars"); parse_bracketed_byte_list("non_rfc_chars", data_stream); } else if (!keyword.compare("enable_cookie")) { - tmpval = converter->add_option_to_table("enable_cookies", true); - converter->add_deprecated_comment("enable_cookie", "enable_cookies"); + tmpval = cv->add_option_to_table("enable_cookies", true); + cv->add_deprecated_comment("enable_cookie", "enable_cookies"); } else if (!keyword.compare("flow_depth")) { - converter->add_deprecated_comment("flow_depth", "server_flow_depth"); + cv->add_deprecated_comment("flow_depth", "server_flow_depth"); tmpval = parse_int_option("server_flow_depth", data_stream); } else if (!keyword.compare("ports")) { - converter->add_deprecated_comment("ports", "bindings"); - converter->add_comment_to_table("check bindings table for port information"); + cv->add_deprecated_comment("ports", "bindings"); + cv->add_comment_to_table("check bindings table for port information"); tmpval = parse_bracketed_unsupported_list("ports", data_stream); } @@ -246,10 +246,10 @@ bool HttpInspectServer::convert(std::stringstream& data_stream) } else { - converter->open_table("small_chunk_length"); - converter->add_option_to_table("size", length); - converter->add_option_to_table("count", consec_chunks); - converter->close_table(); + cv->open_table("small_chunk_length"); + cv->add_option_to_table("size", length); + cv->add_option_to_table("count", consec_chunks); + cv->close_table(); } } @@ -261,14 +261,14 @@ bool HttpInspectServer::convert(std::stringstream& data_stream) if( (data_stream >> map_file) && (data_stream >> code_page)) { - converter->open_table("iis_unicode_map"); - tmpval = converter->add_option_to_table("map_file", map_file); - tmpval = converter->add_option_to_table("code_page", code_page) && tmpval; - converter->close_table(); + cv->open_table("iis_unicode_map"); + tmpval = cv->add_option_to_table("map_file", map_file); + tmpval = cv->add_option_to_table("code_page", code_page) && tmpval; + cv->close_table(); } else { - converter->add_comment_to_table("snort.conf missing argument for " + cv->add_comment_to_table("snort.conf missing argument for " "iis_unicode_map "); tmpval = false; } @@ -278,11 +278,11 @@ bool HttpInspectServer::convert(std::stringstream& data_stream) { if (data_stream >> keyword) { - tmpval = converter->add_option_to_table("profile", keyword); + tmpval = cv->add_option_to_table("profile", keyword); } else { - converter->add_comment_to_table("Unable to convert keyword 'profile'"); + cv->add_comment_to_table("Unable to convert keyword 'profile'"); tmpval = false; } } diff --git a/tools/snort2lua/preprocessor_states/pps_normalizers.cc b/tools/snort2lua/preprocessor_states/pps_normalizers.cc index ba11dbda9..772659232 100644 --- a/tools/snort2lua/preprocessor_states/pps_normalizers.cc +++ b/tools/snort2lua/preprocessor_states/pps_normalizers.cc @@ -91,31 +91,31 @@ bool Ip4Normalizer::convert(std::stringstream& data_stream) std::string keyword; bool retval = true; - converter->open_table("normalize"); - converter->open_table("ip4"); - converter->add_option_to_table("base", true); + cv->open_table("normalize"); + cv->open_table("ip4"); + cv->add_option_to_table("base", true); while( data_stream >> keyword) { if(!keyword.compare("df")) - retval = converter->add_option_to_table("df", true) && retval; + retval = cv->add_option_to_table("df", true) && retval; else if(!keyword.compare("rf")) - retval = converter->add_option_to_table("rf", true) && retval; + retval = cv->add_option_to_table("rf", true) && retval; else if(!keyword.compare("tos")) - retval = converter->add_option_to_table("tos", true) && retval; + retval = cv->add_option_to_table("tos", true) && retval; else if(!keyword.compare("trim")) - retval = converter->add_option_to_table("trim", true) && retval; + retval = cv->add_option_to_table("trim", true) && retval; else retval = false; } - converter->close_table(); - converter->close_table(); + cv->close_table(); + cv->close_table(); return retval; } @@ -178,23 +178,23 @@ private: bool TcpNormalizer::set_ecn_w_comment(std::string comment) { - converter->add_comment_to_table("tcp normalizer: '" + + cv->add_comment_to_table("tcp normalizer: '" + comment + "'' is deprecated. use 'ecn' instead"); - return converter->add_option_to_table("ecn", true); + return cv->add_option_to_table("ecn", true); } bool TcpNormalizer::set_base_w_comment(std::string comment) { - converter->add_comment_to_table("tcp normalizer: '" + + cv->add_comment_to_table("tcp normalizer: '" + comment + "'' is deprecated. use 'base' instead"); - return converter->add_option_to_table("base", true); + return cv->add_option_to_table("base", true); } bool TcpNormalizer::set_trim_w_comment(std::string comment) { - converter->add_comment_to_table("tcp normalizer: '" + + cv->add_comment_to_table("tcp normalizer: '" + comment + "'' is deprecated. use 'trim' instead"); - return converter->add_option_to_table("trim", true); + return cv->add_option_to_table("trim", true); } @@ -204,9 +204,9 @@ bool TcpNormalizer::convert(std::stringstream& data_stream) std::string value; bool retval = true; - converter->open_table("normalize"); - converter->open_table("tcp"); - converter->add_option_to_table("base", true); + cv->open_table("normalize"); + cv->open_table("tcp"); + cv->add_option_to_table("base", true); while( data_stream >> keyword) { @@ -230,7 +230,7 @@ bool TcpNormalizer::convert(std::stringstream& data_stream) retval = set_base_w_comment("req_urp") && retval; else if(!keyword.compare("ips")) - retval = converter->add_option_to_table("ips", true) && retval; + retval = cv->add_option_to_table("ips", true) && retval; else if(!keyword.compare("trim_syn")) retval = set_trim_w_comment("trim_syn") && retval; @@ -245,13 +245,13 @@ bool TcpNormalizer::convert(std::stringstream& data_stream) retval = set_trim_w_comment("trim_mss") && retval; else if(!keyword.compare("trim")) - retval = converter->add_option_to_table("trim", true) && retval; + retval = cv->add_option_to_table("trim", true) && retval; else if(!keyword.compare("opts")) - retval = converter->add_option_to_table("opts", true) && retval; + retval = cv->add_option_to_table("opts", true) && retval; else if(!keyword.compare("urp")) - retval = converter->add_option_to_table("urp", true) && retval; + retval = cv->add_option_to_table("urp", true) && retval; else if(!keyword.compare("ecn")) { @@ -265,8 +265,8 @@ bool TcpNormalizer::convert(std::stringstream& data_stream) retval = false; } - converter->close_table(); - converter->close_table(); + cv->close_table(); + cv->close_table(); return retval; } diff --git a/tools/snort2lua/preprocessor_states/pps_sfportscan.cc b/tools/snort2lua/preprocessor_states/pps_sfportscan.cc index df366fc47..12b6ac34a 100644 --- a/tools/snort2lua/preprocessor_states/pps_sfportscan.cc +++ b/tools/snort2lua/preprocessor_states/pps_sfportscan.cc @@ -64,7 +64,7 @@ bool PortScan::parse_ip_list(std::string list_name, std::stringstream& data_stre prev = prev + ' ' + elem; prev = prev + "]"; - return converter->add_option_to_table(list_name, prev); + return cv->add_option_to_table(list_name, prev); } bool PortScan::parse_list(std::string list_name, std::stringstream& data_stream) @@ -76,7 +76,7 @@ bool PortScan::parse_list(std::string list_name, std::stringstream& data_stream) return false; while (data_stream >> elem && elem != "}") - retval && converter->add_list_to_table(list_name, elem) && retval; + retval && cv->add_list_to_table(list_name, elem) && retval; return retval; } @@ -90,7 +90,7 @@ bool PortScan::parse_option(std::string list_name, std::stringstream& data_strea return false; while (data_stream >> elem && elem != "}") - retval && converter->add_option_to_table(list_name, elem) && retval; + retval && cv->add_option_to_table(list_name, elem) && retval; return retval; } @@ -106,11 +106,11 @@ bool PortScan::add_portscan_global_option(std::string name, std::stringstream& d if (!(data_stream >> val)) return false; - converter->close_table(); - converter->open_table("port_scan_global"); - bool retval = converter->add_option_to_table(name, val); - converter->close_table(); - converter->open_table("port_scan"); + cv->close_table(); + cv->open_table("port_scan_global"); + bool retval = cv->add_option_to_table(name, val); + cv->close_table(); + cv->open_table("port_scan"); if (!(data_stream >> garbage) || (garbage != "}")) return false; @@ -123,7 +123,7 @@ bool PortScan::convert(std::stringstream& data_stream) { std::string keyword; bool retval = true; - converter->open_table("port_scan"); + cv->open_table("port_scan"); while(data_stream >> keyword) { @@ -142,29 +142,29 @@ bool PortScan::convert(std::stringstream& data_stream) tmpval = parse_ip_list("ignore_scanned", data_stream); else if(!keyword.compare("include_midstream")) - tmpval = converter->add_option_to_table("include_midstream", true); + tmpval = cv->add_option_to_table("include_midstream", true); else if(!keyword.compare("disabled")) - converter->add_deprecated_comment("disabled"); + cv->add_deprecated_comment("disabled"); else if(!keyword.compare("detect_ack_scans")) - converter->add_deprecated_comment("detect_ack_scans"); + cv->add_deprecated_comment("detect_ack_scans"); else if(!keyword.compare("logfile")) - converter->add_deprecated_comment("logfile"); + cv->add_deprecated_comment("logfile"); else if(!keyword.compare("memcap")) tmpval = add_portscan_global_option("memcap", data_stream); else if(!keyword.compare("proto")) { - converter->add_deprecated_comment("proto", "protos"); + cv->add_deprecated_comment("proto", "protos"); retval = parse_curly_bracket_list("protos", data_stream) && retval; } else if(!keyword.compare("scan_type")) { - converter->add_deprecated_comment("scan_type", "scan_types"); + cv->add_deprecated_comment("scan_type", "scan_types"); tmpval = parse_curly_bracket_list("scan_types", data_stream) && retval; } @@ -175,7 +175,7 @@ bool PortScan::convert(std::stringstream& data_stream) } - converter->close_table(); // unecessary since the state will be reset + cv->close_table(); // unecessary since the state will be reset return retval; } diff --git a/tools/snort2lua/preprocessor_states/pps_smtp.cc b/tools/snort2lua/preprocessor_states/pps_smtp.cc index 1b5a141d8..463471c40 100644 --- a/tools/snort2lua/preprocessor_states/pps_smtp.cc +++ b/tools/snort2lua/preprocessor_states/pps_smtp.cc @@ -49,7 +49,7 @@ bool Smtp::convert(std::stringstream& data_stream) const ConvertMap* map = util::find_map(output_api, keyword); if (map) { - converter->set_state(map->ctor(converter)); + cv->set_state(map->ctor(converter)); return true; } } diff --git a/tools/snort2lua/preprocessor_states/pps_stream_global.cc b/tools/snort2lua/preprocessor_states/pps_stream_global.cc index 5f2a8b0be..13092ce4a 100644 --- a/tools/snort2lua/preprocessor_states/pps_stream_global.cc +++ b/tools/snort2lua/preprocessor_states/pps_stream_global.cc @@ -45,7 +45,7 @@ bool StreamGlobal::convert(std::stringstream& data_stream) std::string keyword; bool retval = true; - converter->open_table("stream"); + cv->open_table("stream"); while(data_stream >> keyword) { @@ -60,86 +60,86 @@ bool StreamGlobal::convert(std::stringstream& data_stream) if(!keyword.compare("flush_on_alert")) - converter->add_deprecated_comment("flush_on_alert"); + cv->add_deprecated_comment("flush_on_alert"); else if(!keyword.compare("disabled")) - converter->add_deprecated_comment("disabled"); + cv->add_deprecated_comment("disabled"); else if(!keyword.compare("track_tcp")) { - converter->add_deprecated_comment("track_tcp"); + cv->add_deprecated_comment("track_tcp"); if(!(data_stream >> keyword)) // eat the yes/no option tmpval = false; } else if(!keyword.compare("track_udp")) { - converter->add_deprecated_comment("track_udp"); + cv->add_deprecated_comment("track_udp"); if(!(data_stream >> keyword)) // eat the yes/no option tmpval = false; } else if(!keyword.compare("track_icmp")) { - converter->add_deprecated_comment("track_icmp"); + cv->add_deprecated_comment("track_icmp"); if(!(data_stream >> keyword)) // eat the yes/no option tmpval = false; } else if(!keyword.compare("prune_log_max")) { - converter->add_deprecated_comment("prune_log_max", "histogram"); + cv->add_deprecated_comment("prune_log_max", "histogram"); if(!(data_stream >> keyword)) // eat the number of bytes tmpval = false; } else if(!keyword.compare("max_tcp")) { - converter->open_table("tcp_cache"); + cv->open_table("tcp_cache"); tmpval = parse_int_option("max_sessions", data_stream); - converter->close_table(); + cv->close_table(); } else if(!keyword.compare("memcap")) { - converter->open_table("tcp_cache"); + cv->open_table("tcp_cache"); tmpval = parse_int_option("memcap", data_stream); - converter->close_table(); + cv->close_table(); } else if(!keyword.compare("max_udp")) { - converter->open_table("udp_cache"); + cv->open_table("udp_cache"); tmpval = parse_int_option("max_sessions", data_stream); - converter->close_table(); + cv->close_table(); } else if(!keyword.compare("max_icmp")) { - converter->open_table("icmp_cache"); + cv->open_table("icmp_cache"); tmpval = parse_int_option("max_sessions", data_stream); - converter->close_table(); + cv->close_table(); } else if(!keyword.compare("show_rebuilt_packets")) { - converter->open_top_level_table("stream_tcp"); - converter->add_option_to_table("show_rebuilt_packets", true); - converter->close_table(); + cv->open_top_level_table("stream_tcp"); + cv->add_option_to_table("show_rebuilt_packets", true); + cv->close_table(); } else if(!keyword.compare("min_response_seconds")) { - converter->open_top_level_table("active"); + cv->open_top_level_table("active"); tmpval = parse_int_option("min_interval", data_stream); - converter->close_table(); + cv->close_table(); } else if(!keyword.compare("max_active_responses")) { - converter->open_top_level_table("active"); + cv->open_top_level_table("active"); tmpval = parse_int_option("max_responses", data_stream); - converter->close_table(); + cv->close_table(); } diff --git a/tools/snort2lua/preprocessor_states/pps_stream_tcp.cc b/tools/snort2lua/preprocessor_states/pps_stream_tcp.cc index 413de9aa6..ad37077b4 100644 --- a/tools/snort2lua/preprocessor_states/pps_stream_tcp.cc +++ b/tools/snort2lua/preprocessor_states/pps_stream_tcp.cc @@ -50,9 +50,9 @@ bool StreamTcp::parse_small_segments(std::stringstream& data_stream) if (!(data_stream >> i_val)) return false; - converter->open_table("small_segments"); - converter->add_option_to_table("count", i_val); - converter->close_table(); + cv->open_table("small_segments"); + cv->add_option_to_table("count", i_val); + cv->close_table(); if (!(data_stream >> s_val)) return false; @@ -63,9 +63,9 @@ bool StreamTcp::parse_small_segments(std::stringstream& data_stream) if(!(data_stream >> i_val)) return false; - converter->open_table("small_segments"); - converter->add_option_to_table("maximum_size", i_val); - converter->close_table(); + cv->open_table("small_segments"); + cv->add_option_to_table("maximum_size", i_val); + cv->close_table(); if (!(data_stream >> s_val)) @@ -80,18 +80,18 @@ bool StreamTcp::parse_small_segments(std::stringstream& data_stream) return false; - converter->open_table("small_segments"); + cv->open_table("small_segments"); while(data_stream >> s_val && (s_val.back() != ',')) - converter->add_list_to_table("ignore_ports", s_val); + cv->add_list_to_table("ignore_ports", s_val); if (!s_val.empty()) { s_val.pop_back(); - converter->add_list_to_table("ignore_ports", s_val); + cv->add_list_to_table("ignore_ports", s_val); } - converter->close_table(); + cv->close_table(); return true; } @@ -107,17 +107,17 @@ bool StreamTcp::parse_ports(std::stringstream& data_stream) if( !opt_name.compare("client")) { - converter->add_deprecated_comment("port client", "client_ports"); + cv->add_deprecated_comment("port client", "client_ports"); opt_name = "client_ports"; } else if( !opt_name.compare("server")) { - converter->add_deprecated_comment("port server", "server_ports"); + cv->add_deprecated_comment("port server", "server_ports"); opt_name = "server_ports"; } else if( !opt_name.compare("both")) { - converter->add_deprecated_comment("port both", "both_ports"); + cv->add_deprecated_comment("port both", "both_ports"); opt_name = "both_ports"; } @@ -125,12 +125,12 @@ bool StreamTcp::parse_ports(std::stringstream& data_stream) return false; while(data_stream >> s_val && (s_val.back() != ',')) - retval = converter->add_list_to_table(opt_name, s_val) && retval; + retval = cv->add_list_to_table(opt_name, s_val) && retval; if (!s_val.empty()) { s_val.pop_back(); - converter->add_list_to_table(opt_name, s_val); + cv->add_list_to_table(opt_name, s_val); } return retval; @@ -142,7 +142,7 @@ bool StreamTcp::convert(std::stringstream& data_stream) std::string keyword; bool retval = true; - converter->open_table("stream_tcp"); + cv->open_table("stream_tcp"); while(data_stream >> keyword) { @@ -170,59 +170,59 @@ bool StreamTcp::convert(std::stringstream& data_stream) tmpval = parse_small_segments(data_stream); else if(!keyword.compare("ignore_any_rules")) - tmpval = converter->add_option_to_table("ignore_any_rules", true); + tmpval = cv->add_option_to_table("ignore_any_rules", true); else if(!keyword.compare("ports")) tmpval = parse_ports(data_stream); else if(!keyword.compare("detect_anomalies")) - converter->add_deprecated_comment("detect_anomalies"); + cv->add_deprecated_comment("detect_anomalies"); else if(!keyword.compare("dont_store_large_packets")) - converter->add_deprecated_comment("dont_store_large_packets"); + cv->add_deprecated_comment("dont_store_large_packets"); else if(!keyword.compare("check_session_hijacking")) - converter->add_deprecated_comment("check_session_hijacking"); + cv->add_deprecated_comment("check_session_hijacking"); else if(!keyword.compare("bind_to")) { - converter->add_deprecated_comment("bind_to", "bindings"); + cv->add_deprecated_comment("bind_to", "bindings"); if(!(data_stream >> keyword)) tmpval = false; } else if(!keyword.compare("dont_reassemble_async")) { - converter->add_deprecated_comment("dont_reassemble_async", "reassemble_async"); - tmpval = converter->add_option_to_table("reassemble_async", false); + cv->add_deprecated_comment("dont_reassemble_async", "reassemble_async"); + tmpval = cv->add_option_to_table("reassemble_async", false); } else if(!keyword.compare("use_static_footprint_sizes")) { - converter->add_deprecated_comment("footprint", "use_static_footprint_sizes"); - tmpval = converter->add_option_to_table("footprint", true); + cv->add_deprecated_comment("footprint", "use_static_footprint_sizes"); + tmpval = cv->add_option_to_table("footprint", true); } else if(!keyword.compare("timeout")) { - converter->add_deprecated_comment("timeout", "session_timeout"); + cv->add_deprecated_comment("timeout", "session_timeout"); tmpval = parse_int_option("session_timeout", data_stream); } else if(!keyword.compare("max_queued_segs")) { - converter->add_deprecated_comment("max_queued_segs", "queue_limit.max_segments"); - converter->open_table("queue_limit"); + cv->add_deprecated_comment("max_queued_segs", "queue_limit.max_segments"); + cv->open_table("queue_limit"); tmpval = parse_int_option("max_segments", data_stream); - converter->close_table(); + cv->close_table(); } else if(!keyword.compare("max_queued_bytes")) { - converter->add_deprecated_comment("max_queued_bytes", "queue_limit.max_bytes"); - converter->open_table("queue_limit"); + cv->add_deprecated_comment("max_queued_bytes", "queue_limit.max_bytes"); + cv->open_table("queue_limit"); tmpval = parse_int_option("max_bytes", data_stream); - converter->close_table(); + cv->close_table(); } else diff --git a/tools/snort2lua/preprocessor_states/pps_stream_udp.cc b/tools/snort2lua/preprocessor_states/pps_stream_udp.cc index 4d370bc5d..5c2606817 100644 --- a/tools/snort2lua/preprocessor_states/pps_stream_udp.cc +++ b/tools/snort2lua/preprocessor_states/pps_stream_udp.cc @@ -44,7 +44,7 @@ bool StreamUdp::convert(std::stringstream& data_stream) bool retval = true; std::string keyword; - converter->open_table("stream_udp"); + cv->open_table("stream_udp"); while(data_stream >> keyword) { @@ -57,11 +57,11 @@ bool StreamUdp::convert(std::stringstream& data_stream) continue; if(!keyword.compare("ignore_any_rules")) - tmpval = converter->add_option_to_table("ignore_any_rules", true); + tmpval = cv->add_option_to_table("ignore_any_rules", true); else if(!keyword.compare("timeout")) { - converter->add_deprecated_comment("timeout", "session_timeout"); + cv->add_deprecated_comment("timeout", "session_timeout"); tmpval = parse_int_option("session_timeout", data_stream); } diff --git a/tools/snort2lua/snort2lua.cc b/tools/snort2lua/snort2lua.cc index c7279c041..7df2549ac 100644 --- a/tools/snort2lua/snort2lua.cc +++ b/tools/snort2lua/snort2lua.cc @@ -26,12 +26,14 @@ #include "init_state.h" #include "snort2lua_util.h" -static bool convert(std::ifstream& in, std::ofstream& out) +static void convert(Converter *cv, std::string input_file) { - Converter cv; - cv.reset_state(); + std::ifstream in; std::string orig_text; + in.open(input_file, std::ifstream::in); + cv->reset_state(); + while(!in.eof()) { std::string tmp; @@ -42,12 +44,12 @@ static bool convert(std::ifstream& in, std::ofstream& out) if (orig_text.empty()) { - cv.add_comment_to_file(""); + cv->add_comment_to_file(""); } else if (orig_text.front() == '#') { orig_text.erase(orig_text.begin()); - cv.add_comment_to_file(orig_text); + cv->add_comment_to_file(orig_text); orig_text.clear(); } else if ( orig_text.back() == '\\') @@ -60,23 +62,18 @@ static bool convert(std::ifstream& in, std::ofstream& out) std::stringstream data_stream(orig_text); while(data_stream.tellg() != -1) { - if (!cv.convert_line(data_stream)) + if (!cv->convert_line(data_stream)) { - cv.log_error("Failed to entirely convert: " + orig_text); -// data_stream.setstate(std::basic_ios::eofbit); + cv->log_error("Failed to entirely convert: " + orig_text); break; } } orig_text.clear(); - cv.reset_state(); + cv->reset_state(); } } - // finally, lets print the converter to file - out << "require(\"snort_config\") -- for loading" << std::endl; - out << cv; - return true; } @@ -89,6 +86,8 @@ int main (int argc, char* argv[]) { std::ifstream in; std::ofstream out; + std::string input_name, output_name; + Converter cv; if (argc != 3) { @@ -96,8 +95,8 @@ int main (int argc, char* argv[]) return -1; } - in.open(argv[1], std::ifstream::in); - out.open(argv[2], std::ifstream::out); + input_name = std::string(argv[1]); + output_name = std::string(argv[2]); if (in.fail()) { @@ -111,10 +110,13 @@ int main (int argc, char* argv[]) return -1; } - if (!convert(in, out)) - { - std::cout << "Error: failed to convert files!" << std::endl; - } + convert(&cv, input_name); + + + // finally, lets print the converter to file + out.open(argv[2], std::ifstream::out); + out << "require(\"snort_config\") -- for loading" << std::endl << std::endl; + out << cv; in.close(); out.close();