From: Shravan Rangarajuvenkata (shrarang) Date: Fri, 2 Oct 2020 20:57:36 +0000 (+0000) Subject: Merge pull request #2526 in SNORT/snort3 from ~SATHIRKA/snort3:tp_reload_idle_prune... X-Git-Tag: 3.0.3-2~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=84f02478c02b95c0476907003012ffc11a15f0d6;p=thirdparty%2Fsnort3.git Merge pull request #2526 in SNORT/snort3 from ~SATHIRKA/snort3:tp_reload_idle_prune to master Squashed commit of the following: commit ade3c12d86fec754e94b5651710d4bebbe696561 Author: Sreeja Athirkandathil Narayanan Date: Mon Sep 28 15:05:59 2020 -0400 appid: inform third-party about snort's idle state during reload --- diff --git a/src/network_inspectors/appid/appid_module.cc b/src/network_inspectors/appid/appid_module.cc index ee4e24678..9a661019a 100644 --- a/src/network_inspectors/appid/appid_module.cc +++ b/src/network_inspectors/appid/appid_module.cc @@ -30,6 +30,7 @@ #include "host_tracker/host_cache.h" #include "log/messages.h" +#include "main/analyzer.h" #include "main/analyzer_command.h" #include "main/snort.h" #include "main/swapper.h" @@ -179,11 +180,15 @@ private: bool from_shell; }; -bool ACThirdPartyAppIdContextUnload::execute(Analyzer&, void**) +bool ACThirdPartyAppIdContextUnload::execute(Analyzer& ac, void**) { assert(pkt_thread_tp_appid_ctxt); pkt_thread_tp_appid_ctxt->set_tp_reload_in_progress(true); - bool reload_in_progress = pkt_thread_tp_appid_ctxt->tfini(true); + bool reload_in_progress; + if (ac.is_idling()) + reload_in_progress = pkt_thread_tp_appid_ctxt->tfini(true, true); + else + reload_in_progress = pkt_thread_tp_appid_ctxt->tfini(true); if (reload_in_progress) return false; pkt_thread_tp_appid_ctxt = nullptr; diff --git a/src/network_inspectors/appid/test/tp_mock.cc b/src/network_inspectors/appid/test/tp_mock.cc index ba8641d91..4ac4057c5 100644 --- a/src/network_inspectors/appid/test/tp_mock.cc +++ b/src/network_inspectors/appid/test/tp_mock.cc @@ -56,7 +56,7 @@ public: } int tinit() override { return 0; } - bool tfini(bool) override { return false; } + bool tfini(bool, bool) override { return false; } }; class ThirdPartyAppIdSessionImpl : public ThirdPartyAppIdSession diff --git a/src/network_inspectors/appid/tp_appid_module_api.h b/src/network_inspectors/appid/tp_appid_module_api.h index b34bb8ca8..8c4ede4da 100644 --- a/src/network_inspectors/appid/tp_appid_module_api.h +++ b/src/network_inspectors/appid/tp_appid_module_api.h @@ -60,7 +60,7 @@ public: const std::string& module_name() const { return name; } virtual int tinit() = 0; - virtual bool tfini(bool reload = false) = 0; + virtual bool tfini(bool reload = false, bool is_idling = false) = 0; virtual const ThirdPartyConfig& get_config() const { return cfg; }