]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #2665 in SNORT/snort3 from ~KAMURTHI/snort3:interactive_block...
authorShravan Rangarajuvenkata (shrarang) <shrarang@cisco.com>
Fri, 18 Dec 2020 20:20:52 +0000 (20:20 +0000)
committerShravan Rangarajuvenkata (shrarang) <shrarang@cisco.com>
Fri, 18 Dec 2020 20:20:52 +0000 (20:20 +0000)
Squashed commit of the following:

commit 66f73911e305ece27134da3d24a6c326dc3da5ea
Author: Kanimozhi Murthi <kamurthi@cisco.com>
Date:   Tue Dec 8 17:29:07 2020 -0500

    appid: allow checking appid availability for a given http/2 stream

src/network_inspectors/appid/appid_session_api.cc
src/network_inspectors/appid/appid_session_api.h

index 8039bc96b066f2fb9312f84c7c3f3534e80af7a8..e5b0789b72830eb2b5f224a9d8721056fa4e3f32 100644 (file)
@@ -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
index 042f3d11a79186efaa6685e6e5b728fed71b8d70..4c482d6b10940cf364ec35edc8817835ba0a5369 100644 (file)
@@ -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;