From: Shravan Rangarajuvenkata (shrarang) Date: Tue, 10 Mar 2020 13:16:29 +0000 (+0000) Subject: Merge pull request #2066 in SNORT/snort3 from ~SATHIRKA/snort3:reload_mid_stream... X-Git-Tag: 3.0.0-269~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=53c3059de04ad9956f9d7f5cd502cec57339a371;p=thirdparty%2Fsnort3.git Merge pull request #2066 in SNORT/snort3 from ~SATHIRKA/snort3:reload_mid_stream to master Squashed commit of the following: commit 74a624bbb17b3405addc1dc0107df4070c6b2274 Author: Sreeja Athirkandathil Narayanan Date: Fri Mar 6 14:19:29 2020 -0500 appid: Adding support for third-party reload on midstream session --- diff --git a/src/network_inspectors/appid/appid_discovery.cc b/src/network_inspectors/appid/appid_discovery.cc index ec33c22bb..baac359f3 100644 --- a/src/network_inspectors/appid/appid_discovery.cc +++ b/src/network_inspectors/appid/appid_discovery.cc @@ -791,7 +791,16 @@ bool AppIdDiscovery::do_discovery(Packet* p, AppIdSession& asd, if (tp_appid_ctxt) { // Skip third-party inspection for sessions using old config - if ((asd.tpsession and &(asd.tpsession->get_ctxt()) == tp_appid_ctxt) || !asd.tpsession) + if (asd.tpsession and &(asd.tpsession->get_ctxt()) != tp_appid_ctxt) + { + bool is_tp_done = asd.is_tp_processing_done(); + delete asd.tpsession; + asd.tpsession = nullptr; + if (!is_tp_done) + is_discovery_done = do_tp_discovery(*tp_appid_ctxt, asd, protocol, p, + direction, change_bits); + } + else is_discovery_done = do_tp_discovery(*tp_appid_ctxt, asd, protocol, p, direction, change_bits); }