]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
ips: move counters in common struct and funcs 1558/head
authorVictor Julien <victor@inliniac.net>
Thu, 28 May 2015 18:44:36 +0000 (20:44 +0200)
committerVictor Julien <victor@inliniac.net>
Wed, 17 Jun 2015 12:49:12 +0000 (14:49 +0200)
src/decode.c
src/decode.h
src/source-nfq.c

index b80703884169f2a1a4eb0ab3fb2c57cb732acf92..aa6068bbc09c3815022ce682666da3a9ba6ef220 100644 (file)
@@ -544,6 +544,27 @@ const char *PktSrcToString(enum PktSrcEnum pkt_src)
     return pkt_src_str;
 }
 
+void CaptureStatsUpdate(ThreadVars *tv, CaptureStats *s, const Packet *p)
+{
+    if (unlikely(PACKET_TEST_ACTION(p, (ACTION_REJECT|ACTION_REJECT_DST|ACTION_REJECT_BOTH)))) {
+        StatsIncr(tv, s->counter_ips_rejected);
+    } else if (unlikely(PACKET_TEST_ACTION(p, ACTION_DROP))) {
+        StatsIncr(tv, s->counter_ips_blocked);
+    } else if (unlikely(p->flags & PKT_STREAM_MODIFIED)) {
+        StatsIncr(tv, s->counter_ips_replaced);
+    } else {
+        StatsIncr(tv, s->counter_ips_accepted);
+    }
+}
+
+void CaptureStatsSetup(ThreadVars *tv, CaptureStats *s)
+{
+    s->counter_ips_accepted = StatsRegisterCounter("ips.accepted", tv);
+    s->counter_ips_blocked = StatsRegisterCounter("ips.blocked", tv);
+    s->counter_ips_rejected = StatsRegisterCounter("ips.rejected", tv);
+    s->counter_ips_replaced = StatsRegisterCounter("ips.replaced", tv);
+}
+
 /**
  * @}
  */
index 3f77cd06da3986e7e5cfd8c5d14e1a0bc44aa819..1a510eec46f248407c8af04e344f594080dc41d1 100644 (file)
@@ -630,6 +630,18 @@ typedef struct DecodeThreadVars_
 #endif
 } DecodeThreadVars;
 
+typedef struct CaptureStats_ {
+
+    uint16_t counter_ips_accepted;
+    uint16_t counter_ips_blocked;
+    uint16_t counter_ips_rejected;
+    uint16_t counter_ips_replaced;
+
+} CaptureStats;
+
+void CaptureStatsUpdate(ThreadVars *tv, CaptureStats *s, const Packet *p);
+void CaptureStatsSetup(ThreadVars *tv, CaptureStats *s);
+
 /**
  *  \brief reset these to -1(indicates that the packet is fresh from the queue)
  */
index f2bfd7f0cbd706d681ee24d264b6def78b0d5406..38770cb9708eb33a45335a4ac84cf5de0b847913 100644 (file)
@@ -131,9 +131,7 @@ typedef struct NFQThreadVars_
     char *data; /** Per function and thread data */
     int datalen; /** Length of per function and thread data */
 
-    uint16_t counter_ips_accepted;
-    uint16_t counter_ips_blocked;
-    uint16_t counter_ips_rejected;
+    CaptureStats stats;
 
 } NFQThreadVars;
 /* shared vars for all for nfq queues and threads */
@@ -761,9 +759,7 @@ TmEcode VerdictNFQThreadInit(ThreadVars *tv, void *initdata, void **data)
 {
     NFQThreadVars *ntv = (NFQThreadVars *) initdata;
 
-    ntv->counter_ips_accepted = StatsRegisterCounter("ips.accepted", tv);
-    ntv->counter_ips_blocked = StatsRegisterCounter("ips.blocked", tv);
-    ntv->counter_ips_rejected = StatsRegisterCounter("ips.rejected", tv);
+    CaptureStatsSetup(tv, &ntv->stats);
 
     *data = (void *)ntv;
     return TM_ECODE_OK;
@@ -1179,13 +1175,7 @@ TmEcode VerdictNFQ(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Packe
 {
     NFQThreadVars *ntv = (NFQThreadVars *)data;
     /* update counters */
-    if (unlikely(PACKET_TEST_ACTION(p, (ACTION_REJECT|ACTION_REJECT_DST|ACTION_REJECT_BOTH)))) {
-        StatsIncr(tv, ntv->counter_ips_rejected);
-    } else if (unlikely(PACKET_TEST_ACTION(p, ACTION_DROP))) {
-        StatsIncr(tv, ntv->counter_ips_blocked);
-    } else {
-        StatsIncr(tv, ntv->counter_ips_accepted);
-    }
+    CaptureStatsUpdate(tv, &ntv->stats, p);
 
     int ret;
     /* if this is a tunnel packet we check if we are ready to verdict