Squashed commit of the following:
commit
1209c74f20a4b0356b1a6f5e972c437716a5ed2d
Author: Silviu Minut <sminut@cisco.com>
Date: Tue Mar 5 10:17:39 2019 -0500
snort2lua: do not translate max_sessions from snort.conf to snort.lua.
snort2lua: introduce command line option -l to suppress conversion of max_tcp, max_udp, max_icmp and max_ip to max_sessions.
stream: log StreamBase::config in StreamBase::show().
snort2lua: do generate the tcp_cache instance even when we don't convert tcp_max to max_sessions.
#include "flow/flow_control.h"
#include "flow/prune_stats.h"
+#include "log/messages.h"
#include "main/snort_config.h"
#include "main/snort_types.h"
#include "managers/inspector_manager.h"
void StreamBase::show(SnortConfig*)
{
- // FIXIT-L SSN print
- //StreamPrintGlobalConfig(&config);
+ LogMessage("Stream Base config:\n");
+ LogMessage(" IP max sessions: %d\n", config.ip_cfg.max_sessions);
+ LogMessage(" ICMP max sessions: %d\n", config.icmp_cfg.max_sessions);
+ LogMessage(" TCP max sessions: %d\n", config.tcp_cfg.max_sessions);
+ LogMessage(" UDP max sessions: %d\n", config.udp_cfg.max_sessions);
+ LogMessage(" User max sessions: %d\n", config.user_cfg.max_sessions);
+ LogMessage(" File max sessions: %d\n", config.file_cfg.max_sessions);
}
void StreamBase::eval(Packet* p)
};
const BaseApi* nin_stream_base = &base_api.base;
-
#define GID_REPUTATION "136"
-TableDelegation table_delegation =
+TableDelegation table_delegation =
{
{ "binder", true },
{ "detection", true },
bool Converter::convert_rules_mult_files = true;
bool Converter::convert_conf_mult_files = true;
bool Converter::bind_wizard = false;
+bool Converter::convert_max_session = true;
Converter::Converter() :
table_api(&top_table_api, table_delegation),
}
rule_api.resolve_pcre_buffer_options();
-
+
if (commented_rule)
rule_api.make_rule_a_comment();
}
return rc;
}
-
inline static bool get_bind_wizard()
{ return bind_wizard; }
+ static void unset_convert_max_session()
+ { convert_max_session = false; }
+
+ static bool do_convert_max_session()
+ { return convert_max_session; }
+
Binder& make_binder(Binder&);
Binder& make_binder();
Binder& make_pending_binder(int ips_policy_id);
static bool convert_conf_mult_files;
static bool empty_args;
static bool bind_wizard;
+ static bool convert_max_session;
bool ftp_data_is_added = false;
};
#endif
-
std::cout << "Snort2Lua\t0.2.0";
}
+static void dont_convert_max_session(const char* /*key*/, const char* /*val*/)
+{
+ Converter::unset_convert_max_session();
+}
+
#ifdef REG_TEST
[[noreturn]] static void print_binder_order(const char* /*key*/, const char* /*val*/)
{
"if <snort_conf> file contains any <include_file> or <policy_file> "
"(i.e. 'include path/to/conf/other_conf'), do NOT parse those files" },
+ { "l", dont_convert_max_session, "",
+ "do not convert max_tcp, max_udp, max_icmp, max_ip to max_session" },
+
{ "m", add_remark, "",
"add a remark to the end of every converted rule" },
}
}
} // namespace parser
-
else if (keyword == "max_tcp")
{
table_api.open_table("tcp_cache");
- table_api.add_diff_option_comment("max_tcp", "max_sessions");
- tmpval = parse_int_option("max_sessions", arg_stream, false);
+ if (cv.do_convert_max_session())
+ {
+ table_api.add_diff_option_comment("max_tcp", "max_sessions");
+ tmpval = parse_int_option("max_sessions", arg_stream, false);
+ }
table_api.close_table();
}
else if (keyword == "tcp_cache_nominal_timeout")
else if (keyword == "max_udp")
{
table_api.open_table("udp_cache");
- table_api.add_diff_option_comment("max_udp","max_sessions");
- tmpval = parse_int_option("max_sessions", arg_stream, false);
+ if (cv.do_convert_max_session())
+ {
+ table_api.add_diff_option_comment("max_udp","max_sessions");
+ tmpval = parse_int_option("max_sessions", arg_stream, false);
+ }
table_api.close_table();
}
else if (keyword == "udp_cache_pruning_timeout")
else if (keyword == "max_icmp")
{
table_api.open_table("icmp_cache");
- table_api.add_diff_option_comment("max_icmp","max_sessions");
- tmpval = parse_int_option("max_sessions", arg_stream, false);
+ if (cv.do_convert_max_session())
+ {
+ table_api.add_diff_option_comment("max_icmp","max_sessions");
+ tmpval = parse_int_option("max_sessions", arg_stream, false);
+ }
table_api.close_table();
}
else if (keyword == "max_ip")
{
table_api.open_table("ip_cache");
- table_api.add_diff_option_comment("max_ip","max_sessions");
- tmpval = parse_int_option("max_sessions", arg_stream, false);
+ if (cv.do_convert_max_session())
+ {
+ table_api.add_diff_option_comment("max_ip","max_sessions");
+ tmpval = parse_int_option("max_sessions", arg_stream, false);
+ }
table_api.close_table();
}
else if (keyword == "show_rebuilt_packets")
const ConvertMap* stream_global_map = &preprocessor_stream_global;
} // namespace preprocessors
-