]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
Print pkt src to alert-debug log
authorVictor Julien <victor@inliniac.net>
Thu, 4 Jul 2013 15:59:16 +0000 (17:59 +0200)
committerVictor Julien <victor@inliniac.net>
Thu, 4 Jul 2013 15:59:16 +0000 (17:59 +0200)
src/alert-debuglog.c
src/decode.c
src/decode.h

index f3f5f74896e82b4ab002a56ea55bbff4c95cb8fc..86a4692d0e71db801ab4a1422c9858e9280ebb3e 100644 (file)
@@ -197,6 +197,7 @@ TmEcode AlertDebugLogger(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq,
     AlertDebugLogThread *aft = (AlertDebugLogThread *)data;
     int i;
     char timebuf[64];
+    const char *pkt_src_str = NULL;
 
     if (p->alerts.cnt == 0)
         return TM_ECODE_OK;
@@ -210,6 +211,8 @@ TmEcode AlertDebugLogger(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq,
     if (p->pcap_cnt > 0) {
         MemBufferWriteString(aft->buffer, "PCAP PKT NUM:      %"PRIu64"\n", p->pcap_cnt);
     }
+    pkt_src_str = PktSrcToString(p->pkt_src);
+    MemBufferWriteString(aft->buffer, "PKT SRC:           %s\n", pkt_src_str);
 
     char srcip[46], dstip[46];
     if (PKT_IS_IPV4(p)) {
@@ -354,6 +357,7 @@ TmEcode AlertDebugLogDecoderEvent(ThreadVars *tv, Packet *p, void *data, PacketQ
     AlertDebugLogThread *aft = (AlertDebugLogThread *)data;
     int i;
     char timebuf[64];
+    const char *pkt_src_str = NULL;
 
     if (p->alerts.cnt == 0)
         return TM_ECODE_OK;
@@ -369,6 +373,8 @@ TmEcode AlertDebugLogDecoderEvent(ThreadVars *tv, Packet *p, void *data, PacketQ
         MemBufferWriteString(aft->buffer,
                              "PCAP PKT NUM:      %"PRIu64"\n", p->pcap_cnt);
     }
+    pkt_src_str = PktSrcToString(p->pkt_src);
+    MemBufferWriteString(aft->buffer, "PKT SRC:           %s\n", pkt_src_str);
     MemBufferWriteString(aft->buffer,
                          "ALERT CNT:         %" PRIu32 "\n", p->alerts.cnt);
 
index 4f1c57b4f636212a9c586e556e36a05a76f8c37e..4a574ac064a43e9d828ace22d6d72044cd9927f1 100644 (file)
@@ -432,6 +432,40 @@ inline int PacketSetData(Packet *p, uint8_t *pktdata, int pktlen)
     return 0;
 }
 
+const char *PktSrcToString(enum PktSrcEnum pkt_src) {
+    char *pkt_src_str = "<unknown>";
+    switch (pkt_src) {
+        case PKT_SRC_WIRE:
+            pkt_src_str = "wire/pcap";
+            break;
+        case PKT_SRC_DECODER_GRE:
+            pkt_src_str = "gre tunnel";
+            break;
+        case PKT_SRC_DECODER_IPV4:
+            pkt_src_str = "ipv4 tunnel";
+            break;
+        case PKT_SRC_DECODER_IPV6:
+            pkt_src_str = "ipv6 tunnel";
+            break;
+        case PKT_SRC_DECODER_TEREDO:
+            pkt_src_str = "teredo tunnel";
+            break;
+        case PKT_SRC_DEFRAG:
+            pkt_src_str = "defrag";
+            break;
+        case PKT_SRC_STREAM_TCP_STREAM_END_PSEUDO:
+            pkt_src_str = "stream";
+            break;
+        case PKT_SRC_FFR_V2:
+            pkt_src_str = "stream (flow timeout)";
+            break;
+        case PKT_SRC_FFR_SHUTDOWN:
+            pkt_src_str = "stream (engine shutdown)";
+            break;
+    }
+    return pkt_src_str;
+}
+
 /**
  * @}
  */
index c747eb2914ee1c19810a80c497db3d9bf47eb96c..bf1f34a8346b169f1345b4d3040bfa64bdc17b98 100644 (file)
@@ -43,7 +43,7 @@ typedef enum {
     CHECKSUM_VALIDATION_KERNEL,
 } ChecksumValidationMode;
 
-enum {
+enum PktSrcEnum {
     PKT_SRC_WIRE = 1,
     PKT_SRC_DECODER_GRE,
     PKT_SRC_DECODER_IPV4,
@@ -779,6 +779,7 @@ Packet *PacketGetFromAlloc(void);
 int PacketCopyData(Packet *p, uint8_t *pktdata, int pktlen);
 int PacketSetData(Packet *p, uint8_t *pktdata, int pktlen);
 int PacketCopyDataOffset(Packet *p, int offset, uint8_t *data, int datalen);
+const char *PktSrcToString(enum PktSrcEnum pkt_src);
 
 DecodeThreadVars *DecodeThreadVarsAlloc();