void UaFpProcessor::make_mpse(SnortConfig* sc)
{
+ if ( !sc )
+ sc = SnortConfig::get_main_conf();
SearchTool::set_conf(sc);
+
if ( !os_fps.empty() )
{
os_mpse = new SearchTool;
jb_host_mpse->add(fp.host_name.c_str(), fp.host_name.size(), &fp);
jb_host_mpse->prep();
}
- SearchTool::set_conf(nullptr);
}
static int match_ua_part(void* id, void*, int, void* data, void*)
in_stream.close();
}
-TcpFpProcessor* RnaInspector::get_or_create_fp_processor()
+void RnaInspector::get_or_create_fp_processor(TcpFpProcessor*& tfp, UaFpProcessor*& uafp)
{
- if (mod_conf)
- {
- if (!mod_conf->tcp_processor)
- mod_conf->tcp_processor = new TcpFpProcessor;
- return mod_conf->tcp_processor;
- }
- return nullptr;
+ if ( !mod_conf )
+ return;
+
+ if ( !mod_conf->tcp_processor )
+ mod_conf->tcp_processor = new TcpFpProcessor;
+ if ( !mod_conf->ua_processor )
+ mod_conf->ua_processor = new UaFpProcessor;
+
+ tfp = mod_conf->tcp_processor;
+ uafp = mod_conf->ua_processor;
}
-void RnaInspector::set_fp_processor(TcpFpProcessor* tfp)
+void RnaInspector::set_fp_processor(TcpFpProcessor* tfp, UaFpProcessor* uafp)
{
- if ( mod_conf )
- {
- delete mod_conf->tcp_processor;
- mod_conf->tcp_processor = tfp;
- }
+ if ( !mod_conf )
+ return;
+
+ delete mod_conf->tcp_processor;
+ mod_conf->tcp_processor = tfp;
+
+ delete mod_conf->ua_processor;
+ mod_conf->ua_processor = uafp;
}
//-------------------------------------------------------------------------
RnaInspector ins(&mod);
ins.show(nullptr);
}
+
+ SECTION("set and get processor")
+ {
+ RnaModule mod;
+ mod.begin(RNA_NAME, 0, nullptr);
+ RnaInspector ins(&mod);
+ TcpFpProcessor* tfp = nullptr;
+ UaFpProcessor* uafp = nullptr;
+ ins.set_fp_processor(tfp, uafp);
+ ins.get_or_create_fp_processor(tfp, uafp);
+ CHECK(tfp != nullptr);
+ CHECK(uafp != nullptr);
+ }
}
#endif