From: Mike Stepanek (mstepane) Date: Wed, 13 Apr 2022 10:43:05 +0000 (+0000) Subject: Pull request #3361: binder: Add binder action handling on service change X-Git-Tag: 3.1.28.0~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ed1d9da8023861806f5a5a546d3a17fd1cc4db0;p=thirdparty%2Fsnort3.git Pull request #3361: binder: Add binder action handling on service change Merge in SNORT/snort3 from ~DKYRYLOV/snort3:binder_flow_change_action to master Squashed commit of the following: commit b57a7773c54c8c65f35d19a7f4c596e6a1ddad5c Author: dkyrylov Date: Fri Apr 1 16:40:44 2022 +0300 binder: add binder actions to flow reassignment Thanks to Meridoff for the original report of the issue. --- diff --git a/src/network_inspectors/binder/binder.cc b/src/network_inspectors/binder/binder.cc index f4ba3d3c9..518464ec6 100644 --- a/src/network_inspectors/binder/binder.cc +++ b/src/network_inspectors/binder/binder.cc @@ -746,10 +746,21 @@ void Binder::handle_flow_setup(Flow& flow, bool standby) void Binder::handle_flow_service_change(Flow& flow) { + bstats.service_changes++; + Profile profile(bindPerfStats); + Stuff stuff; + + get_bindings(flow, stuff); + if (stuff.action != BindUse::BA_INSPECT) + { + stuff.apply_action(flow); + return; + } Inspector* ins = nullptr; Inspector* data = nullptr; + if (flow.has_service()) { ins = find_gadget(flow, data); @@ -813,8 +824,6 @@ void Binder::handle_flow_service_change(Flow& flow) Stream::set_splitter(&flow, false, new AtomSplitter(false)); } } - - bstats.service_changes++; } void Binder::handle_assistant_gadget(const char* service, Flow& flow)