]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Pull request #3614: appid: return APP_ID_NONE only if hsession is not present for...
authorShanmugam S (shanms) <shanms@cisco.com>
Fri, 14 Oct 2022 12:29:03 +0000 (12:29 +0000)
committerShanmugam S (shanms) <shanms@cisco.com>
Fri, 14 Oct 2022 12:29:03 +0000 (12:29 +0000)
Merge in SNORT/snort3 from ~SHIKV/snort3:appid_ss to master

Squashed commit of the following:

commit c366852482ce8e0580a64055896220e07c57fe99
Author: shibin k v <shikv@cisco.com>
Date:   Tue Oct 4 10:44:05 2022 +0000

    appid: return APP_ID_NONE only if hsession is not present for http3

src/network_inspectors/appid/appid_session.cc
src/network_inspectors/appid/ips_appid_option.cc

index 08f25e8c0883d9a8c83517c1ee3900743203db69..fa84fc27f2460a6631b581e282644d1d9146218b 100644 (file)
@@ -821,7 +821,8 @@ AppId AppIdSession::pick_service_app_id() const
 
 AppId AppIdSession::pick_ss_misc_app_id() const
 {
-    if (api.service.get_id() == APP_ID_HTTP2 or api.service.get_id() == APP_ID_HTTP3)
+    if (api.service.get_id() == APP_ID_HTTP2 or
+        (api.service.get_id() == APP_ID_HTTP3 and !api.hsessions.empty()))
         return APP_ID_NONE;
 
     if (misc_app_id > APP_ID_NONE)
@@ -838,7 +839,8 @@ AppId AppIdSession::pick_ss_misc_app_id() const
 
 AppId AppIdSession::pick_ss_client_app_id() const
 {
-    if (api.service.get_id() == APP_ID_HTTP2 or api.service.get_id() == APP_ID_HTTP3)
+    if (api.service.get_id() == APP_ID_HTTP2 or
+        (api.service.get_id() == APP_ID_HTTP3 and !api.hsessions.empty()))
         return APP_ID_NONE;
 
     AppId tmp_id = APP_ID_NONE;
@@ -868,7 +870,8 @@ AppId AppIdSession::pick_ss_client_app_id() const
 
 AppId AppIdSession::pick_ss_payload_app_id(AppId service_id) const
 {
-    if (service_id == APP_ID_HTTP2 or service_id == APP_ID_HTTP3)
+    if (service_id == APP_ID_HTTP2 or
+        (service_id == APP_ID_HTTP3 and !api.hsessions.empty()))
         return APP_ID_NONE;
 
     if (tp_payload_app_id_deferred)
index 975f915ed59ae10c33cc90c483883d16898119b8..99c38612a15219bc6e41522b49e923ea3183bc29 100644 (file)
@@ -124,7 +124,8 @@ IpsOption::EvalStatus AppIdIpsOption::eval(Cursor&, Packet* p)
     AppId service_id = session->get_api().get_service_app_id();
     OdpContext& odp_ctxt = session->get_odp_ctxt();
 
-    if (service_id != APP_ID_HTTP2 and service_id != APP_ID_HTTP3)
+    if ((service_id != APP_ID_HTTP2 and service_id != APP_ID_HTTP3) or
+        (service_id == APP_ID_HTTP3 and session->get_api().get_hsessions_size() == 0))
     {
         AppId app_ids[APP_PROTOID_MAX];