From: Shravan Rangarajuvenkata (shrarang) Date: Fri, 18 Dec 2020 20:20:52 +0000 (+0000) Subject: Merge pull request #2665 in SNORT/snort3 from ~KAMURTHI/snort3:interactive_block... X-Git-Tag: 3.0.3-6~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=df5edf90e96878a3dd4fdb3cdedd25bdba6c6ff1;p=thirdparty%2Fsnort3.git Merge pull request #2665 in SNORT/snort3 from ~KAMURTHI/snort3:interactive_block to master Squashed commit of the following: commit 66f73911e305ece27134da3d24a6c326dc3da5ea Author: Kanimozhi Murthi Date: Tue Dec 8 17:29:07 2020 -0500 appid: allow checking appid availability for a given http/2 stream --- diff --git a/src/network_inspectors/appid/appid_session_api.cc b/src/network_inspectors/appid/appid_session_api.cc index 8039bc96b..e5b0789b7 100644 --- a/src/network_inspectors/appid/appid_session_api.cc +++ b/src/network_inspectors/appid/appid_session_api.cc @@ -237,15 +237,17 @@ bool AppIdSessionApi::is_appid_inspecting_session() const return false; } -bool AppIdSessionApi::is_appid_available() const +bool AppIdSessionApi::is_appid_available(uint32_t stream_index) const { if (!asd) return false; - - return ( (service.get_id() != APP_ID_NONE || - payload.get_id() != APP_ID_NONE) && - (asd->is_tp_appid_available() || - asd->get_session_flags(APPID_SESSION_NO_TPI)) ); + if (service.get_id() == APP_ID_HTTP2) + return (get_payload_app_id(stream_index) != APP_ID_NONE); + else + return ( (service.get_id() != APP_ID_NONE || + payload.get_id() != APP_ID_NONE) && + (asd->is_tp_appid_available() || + asd->get_session_flags(APPID_SESSION_NO_TPI)) ); } const char* AppIdSessionApi::get_client_info(uint32_t stream_index) const diff --git a/src/network_inspectors/appid/appid_session_api.h b/src/network_inspectors/appid/appid_session_api.h index 042f3d11a..4c482d6b1 100644 --- a/src/network_inspectors/appid/appid_session_api.h +++ b/src/network_inspectors/appid/appid_session_api.h @@ -116,7 +116,7 @@ public: void get_app_id(AppId* service, AppId* client, AppId* payload, AppId* misc, AppId* referred, uint32_t stream_index = 0) const; bool is_appid_inspecting_session() const; - bool is_appid_available() const; + bool is_appid_available(uint32_t stream_index = 0) const; const char* get_client_info(uint32_t stream_index = 0) const; uint64_t get_appid_session_attribute(uint64_t flag) const; const SfIp* get_initiator_ip() const;