]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
output/ftp: have ftp properties in alerts
authorPhilippe Antoine <pantoine@oisf.net>
Thu, 16 Nov 2023 08:49:58 +0000 (09:49 +0100)
committerPhilippe Antoine <contact@catenacyber.fr>
Mon, 20 Nov 2023 20:53:13 +0000 (21:53 +0100)
Ticket: 6500

src/output-json-ftp.c
src/output-json-ftp.h
src/output.c

index 9fb8b8c622db685566e1177b5bcf91ef15d2aa59..34422f72f4af19210b40de9a639f0f31e0b32af7 100644 (file)
 #include "app-layer-ftp.h"
 #include "output-json-ftp.h"
 
-static void EveFTPLogCommand(FTPTransaction *tx, JsonBuilder *jb)
+bool EveFTPLogCommand(void *vtx, JsonBuilder *jb)
 {
+    FTPTransaction *tx = vtx;
     /* Preallocate array objects to simplify failure case */
     JsonBuilder *js_resplist = NULL;
     if (!TAILQ_EMPTY(&tx->response_list)) {
         js_resplist = jb_new_array();
 
         if (unlikely(js_resplist == NULL)) {
-            return;
+            return false;
         }
     }
     jb_open_object(jb, "ftp");
@@ -151,6 +152,7 @@ static void EveFTPLogCommand(FTPTransaction *tx, JsonBuilder *jb)
         JB_SET_FALSE(jb, "reply_truncated");
     }
     jb_close(jb);
+    return true;
 }
 
 
@@ -166,7 +168,6 @@ static int JsonFTPLogger(ThreadVars *tv, void *thread_data,
     } else {
         event_type = "ftp";
     }
-    FTPTransaction *tx = vtx;
 
     JsonBuilder *jb =
             CreateEveHeaderWithTxId(p, LOG_DIR_FLOW, event_type, NULL, tx_id, thread->ctx);
@@ -176,7 +177,7 @@ static int JsonFTPLogger(ThreadVars *tv, void *thread_data,
                 goto fail;
             }
         } else {
-            EveFTPLogCommand(tx, jb);
+            EveFTPLogCommand(vtx, jb);
         }
 
         OutputJsonBuilderBuffer(jb, thread);
index acba5539e1c6326ea19db982a479162b7174ae83..704defd9585c4fb2f2c0b5fd6986b6750fd02335 100644 (file)
@@ -25,5 +25,6 @@
 #define __OUTPUT_JSON_FTP_H__
 
 void JsonFTPLogRegister(void);
+bool EveFTPLogCommand(void *vtx, JsonBuilder *js);
 
 #endif /* __OUTPUT_JSON_FTP_H__ */
index 031831966e1705926defa00f2a6c535e40c97f00..d57622ff39c9712c05a679296ff19d80452c2609 100644 (file)
@@ -1132,8 +1132,8 @@ void OutputRegisterLoggers(void)
 static EveJsonSimpleAppLayerLogger simple_json_applayer_loggers[ALPROTO_MAX] = {
     { ALPROTO_UNKNOWN, NULL },
     { ALPROTO_HTTP1, NULL }, // special: uses some options flags
-    { ALPROTO_FTP, NULL },   // TODO missing
-    { ALPROTO_SMTP, NULL },  // special: uses state
+    { ALPROTO_FTP, EveFTPLogCommand },
+    { ALPROTO_SMTP, NULL }, // special: uses state
     { ALPROTO_TLS, JsonTlsLogJSONExtended },
     { ALPROTO_SSH, rs_ssh_log_json },
     { ALPROTO_IMAP, NULL },   // protocol detection only