]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #1972 in SNORT/snort3 from ~KAMURTHI/snort3:URL_MATCHING to master
authorShravan Rangarajuvenkata (shrarang) <shrarang@cisco.com>
Fri, 31 Jan 2020 15:45:55 +0000 (15:45 +0000)
committerShravan Rangarajuvenkata (shrarang) <shrarang@cisco.com>
Fri, 31 Jan 2020 15:45:55 +0000 (15:45 +0000)
Squashed commit of the following:

commit c62c61b3a77171e76dc64ab42fa86cf6baad31f3
Author: Kanimozhi Murthi <kamurthi@cisco.com>
Date:   Mon Jan 27 13:19:11 2020 -0500

    appid: Don't mark HTTP session done if the ssl detector is still in progress

src/network_inspectors/appid/appid_session_api.cc
src/network_inspectors/appid/test/appid_session_api_test.cc

index 3303df97677ed24307a4f211bc19f15eb71fd8ff..d84dea4875ebc03321735aaecbef15c57901578c 100644 (file)
@@ -260,7 +260,10 @@ AppIdHttpSession* AppIdSessionApi::get_http_session()
 
 bool AppIdSessionApi::is_http_inspection_done()
 {
-    return asd->is_tp_appid_done();
+    return (asd->is_tp_appid_done() and
+           !(asd->get_session_flags(APPID_SESSION_SSL_SESSION) and
+               !get_tls_host() and
+               (asd->service_disco_state!= APPID_DISCO_STATE_FINISHED)));
 }
 
 
index d3a2c1bc35a122c2e233a8a03cad95087ccf347a..11a57d670fad2d521a158badfaf9d3ce7290eb60 100644 (file)
@@ -362,6 +362,24 @@ TEST(appid_session_api, is_http_inspection_done)
     bool val;
     val = appid_session_api->is_http_inspection_done();
     CHECK_TRUE(val);
+    mock_session->service_disco_state = APPID_DISCO_STATE_FINISHED;
+    mock_session->set_session_flags(APPID_SESSION_SSL_SESSION);
+    val = appid_session_api->is_http_inspection_done();
+    CHECK_TRUE(val);
+    AppidChangeBits change_bits;
+    mock_session->service_disco_state = APPID_DISCO_STATE_STATEFUL;
+    mock_session->set_session_flags(APPID_SESSION_SSL_SESSION);
+    val = appid_session_api->is_http_inspection_done();
+    CHECK_FALSE(val);
+    mock_session->service_disco_state = APPID_DISCO_STATE_STATEFUL;
+    mock_session->set_session_flags(APPID_SESSION_SSL_SESSION);
+    mock_session->tsession->set_tls_host("www.cisco.com", 13, change_bits);
+    val = appid_session_api->is_http_inspection_done();
+    CHECK_TRUE(val);
+    mock_session->service_disco_state = APPID_DISCO_STATE_FINISHED;
+    mock_session->set_session_flags(APPID_SESSION_SSL_SESSION);
+    val = appid_session_api->is_http_inspection_done();
+    CHECK_TRUE(val);
 }
 
 int main(int argc, char** argv)