]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #2795 in SNORT/snort3 from ~MMATIRKO/snort3:hostclient_nullptr...
authorMasud Hasan (mashasan) <mashasan@cisco.com>
Wed, 17 Mar 2021 20:53:12 +0000 (20:53 +0000)
committerMasud Hasan (mashasan) <mashasan@cisco.com>
Wed, 17 Mar 2021 20:53:12 +0000 (20:53 +0000)
Squashed commit of the following:

commit d5789022476a59edec4cfd73eea23d53664cdda2
Author: Michael Matirko <mmatirko@cisco.com>
Date:   Thu Mar 11 15:15:57 2021 -0500

    host_tracker: fully populate local hostclient before logging

src/host_tracker/host_tracker.cc
src/network_inspectors/rna/rna_logger.cc

index c849db07b81ca59c5bd5a1bff5b6e5d3b5a29cd7..2780401acc0a1869dab0c3162daefdaa0256a703 100644 (file)
@@ -404,6 +404,8 @@ bool HostTracker::add_client_payload(HostClient& hc, AppId payload, size_t max_p
 
                     pld.second = true;
                     client.num_visible_payloads++;
+                    hc.payloads = client.payloads;
+                    strncpy(hc.version, client.version, INFO_SIZE);
                     return true;
                 }
                 if ( !invisible_swap_candidate and !pld.second )
@@ -416,6 +418,7 @@ bool HostTracker::add_client_payload(HostClient& hc, AppId payload, size_t max_p
                 invisible_swap_candidate->first = payload;
                 client.num_visible_payloads++;
                 hc.payloads = client.payloads;
+                strncpy(hc.version, client.version, INFO_SIZE);
                 return true;
             }
 
index 6d568d968e2cbc76807ed249110c7f85d9d89474..9fec64241401e8c0923963e8bdcd63ad8ac15117 100644 (file)
@@ -81,13 +81,34 @@ static inline void rna_logger_message(const RnaLoggerEvent& rle, const Packet* p
 
         if ( rle.hc )
         {
+            string payload_ids;
+
+            for ( const auto& pld : rle.hc->payloads )
+            {
+                if (pld.second)
+                    payload_ids += payload_ids.size() ? "," : "" + to_string(pld.first);
+            }
+
             if ( rle.hc->version[0] != '\0' )
-                debug_logf(rna_trace, p,
-                    "RNA client log: client %u, service %u, version %s\n",
-                    rle.hc->id, rle.hc->service, rle.hc->version);
+            {
+                if ( rle.hc->payloads.size() )
+                    debug_logf(rna_trace, p,
+                        "RNA client log: client %u, service %u, version %s, payloads: %s\n",
+                        rle.hc->id, rle.hc->service, rle.hc->version, payload_ids.c_str());
+                else
+                    debug_logf(rna_trace, p,
+                        "RNA client log: client %u, service %u, version %s\n",
+                        rle.hc->id, rle.hc->service, rle.hc->version);
+            }
             else
-                debug_logf(rna_trace, p, "RNA client log: client %u, service %u\n",
-                    rle.hc->id, rle.hc->service);
+            {
+                if ( rle.hc->payloads.size() )
+                    debug_logf(rna_trace, p, "RNA client log: client %u, service %u,"
+                        " payloads: %s\n", rle.hc->id, rle.hc->service, payload_ids.c_str());
+                else
+                    debug_logf(rna_trace, p, "RNA client log: client %u, service %u\n",
+                        rle.hc->id, rle.hc->service);
+            }
         }
         if ( rle.ha )
         {