#include "file_inspect.h"
+#include <atomic>
+
#include "log/messages.h"
#include "file_cache.h"
#include "file_flows.h"
#include "file_module.h"
#include "file_service.h"
+#include "pub_sub/file_events_ids.h"
using namespace snort;
+static std::atomic<unsigned> file_adv_pub_id{0};
+
FileInspect::FileInspect(FileIdModule* fm)
{
fm->load_config(config);
FileService::set_max_file_depth(sc);
+ file_adv_pub_id = DataBus::get_id(file_adv_pub_key);
+
if (sc->mp_dbus)
{
MPSerializeFunc serialize_func = serialize_file_event;
return true;
}
+unsigned get_file_adv_pub_id()
+{ return file_adv_pub_id; }
+
static void file_config_show(const FileConfig* fc)
{
if ( ConfigLogger::log_flag("enable_type", FileService::is_file_type_id_enabled()) )
set_source(flow);
FileEvent file_event(*this);
- DataBus::publish(DataBus::get_id(file_adv_pub_key), FileEventIds::FILE_COMPLETE, file_event, flow);
+ DataBus::publish(get_file_adv_pub_id(), FileEventIds::FILE_COMPLETE, file_event, flow);
std::string filename = file_event.get_filename();
size_t fname_len = filename.length();