]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
reworked module methods
authorRuss Combs <rucombs@cisco.com>
Tue, 15 Jul 2014 14:15:33 +0000 (10:15 -0400)
committerRuss Combs <rucombs@cisco.com>
Tue, 15 Jul 2014 14:15:33 +0000 (10:15 -0400)
72 files changed:
src/codecs/decode_module.h
src/codecs/ip/cd_auth_module.cc
src/codecs/ip/cd_auth_module.h
src/codecs/ip/cd_esp_module.cc
src/codecs/ip/cd_esp_module.h
src/codecs/ip/cd_gre_module.cc
src/codecs/ip/cd_gre_module.h
src/codecs/ip/cd_icmp4_module.cc
src/codecs/ip/cd_icmp4_module.h
src/codecs/ip/cd_icmp6_module.cc
src/codecs/ip/cd_icmp6_module.h
src/codecs/ip/cd_igmp_module.cc
src/codecs/ip/cd_igmp_module.h
src/codecs/ip/cd_ipv4_module.cc
src/codecs/ip/cd_ipv4_module.h
src/codecs/ip/cd_ipv6_module.cc
src/codecs/ip/cd_ipv6_module.h
src/codecs/ip/cd_pgm_module.cc
src/codecs/ip/cd_pgm_module.h
src/codecs/ip/cd_tcp_module.cc
src/codecs/ip/cd_tcp_module.h
src/codecs/ip/cd_udp_module.cc
src/codecs/ip/cd_udp_module.h
src/codecs/link/cd_arp_module.cc
src/codecs/link/cd_arp_module.h
src/codecs/link/cd_eapol_module.cc
src/codecs/link/cd_eapol_module.h
src/codecs/link/cd_erspan2_module.cc
src/codecs/link/cd_erspan2_module.h
src/codecs/link/cd_erspan3_module.cc
src/codecs/link/cd_erspan3_module.h
src/codecs/link/cd_mpls_module.cc
src/codecs/link/cd_mpls_module.h
src/codecs/link/cd_pppoe_module.cc
src/codecs/link/cd_pppoe_module.h
src/codecs/link/cd_vlan_module.cc
src/codecs/link/cd_vlan_module.h
src/codecs/misc/cd_gtp_module.cc
src/codecs/misc/cd_gtp_module.h
src/codecs/root/cd_eth_module.cc
src/codecs/root/cd_eth_module.h
src/codecs/root/cd_wlan_module.cc
src/codecs/root/cd_wlan_module.h
src/framework/CMakeLists.txt
src/framework/Makefile.am
src/framework/module.h
src/main/modules.cc
src/network_inspectors/arp_spoof/arp_module.cc
src/network_inspectors/arp_spoof/arp_module.h
src/network_inspectors/port_scan/ps_module.cc
src/network_inspectors/port_scan/ps_module.h
src/service_inspectors/back_orifice/back_orifice.cc
src/service_inspectors/ftp_telnet/ftp_module.cc
src/service_inspectors/ftp_telnet/ftp_module.h
src/service_inspectors/ftp_telnet/telnet_module.cc
src/service_inspectors/ftp_telnet/telnet_module.h
src/service_inspectors/http_inspect/hi_module.cc
src/service_inspectors/http_inspect/hi_module.h
src/service_inspectors/nhttp_inspect/nhttp_module.cc
src/service_inspectors/nhttp_inspect/nhttp_module.h
src/service_inspectors/rpc_decode/rpc_module.cc
src/service_inspectors/rpc_decode/rpc_module.h
src/stream/base/stream_module.cc
src/stream/icmp/icmp_module.cc
src/stream/ip/ip_module.cc
src/stream/ip/ip_module.h
src/stream/tcp/tcp_module.cc
src/stream/tcp/tcp_module.h
src/stream/udp/udp_module.cc
src/time/ppm_module.cc
src/time/ppm_module.h
src/utils/stats.h

index ec33535d3b99304c7c572231ec93eb2ff3f6dc5b..06eedd508e8a73683a28f1800612f39c5b095b8c 100644 (file)
@@ -212,7 +212,11 @@ enum CodecSid {
 class DecodeModule : public Module
 {
 public:
-    using Module::Module; // inherit Module's constructors
+    DecodeModule(const char* s) : Module(s)
+    { };
+
+    DecodeModule(const char* s, const Parameter* p, bool is_list = false)
+    : Module(s, p, is_list) { };
 
     unsigned get_gid() const
     { return GID_DECODE; };
index dd264abcf4c6ff2ff926136facb2f39e4308e5f8..bdfc2f8179f907256243ec9c0be110f2a269e0c2 100644 (file)
 
 #include "codecs/ip/cd_auth_module.h"
 
-
-static const Parameter ah_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 static const RuleMap ah_rules[] =
 {
     { DECODE_AUTH_HDR_TRUNC, "(" CD_AUTH_NAME ") Truncated authentication header"},
@@ -36,13 +29,12 @@ static const RuleMap ah_rules[] =
 };
 
 //-------------------------------------------------------------------------
-// rpc module
+// auth module
 //-------------------------------------------------------------------------
 
-AhModule::AhModule() : DecodeModule(CD_AUTH_NAME, ah_params, ah_rules)
+AhModule::AhModule() : DecodeModule(CD_AUTH_NAME)
 { }
 
-bool AhModule::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* AhModule::get_rules() const
+{ return ah_rules; }
+
index 0127346acc19ca87a1d2d507e8a22be3d5f8b45a..5508a906ca3343cff021ff3675f016dc1c2a79fe 100644 (file)
@@ -32,7 +32,7 @@ class AhModule : public DecodeModule
 public:
     AhModule();
 
-    bool set(const char*, Value&, SnortConfig*);
+    const RuleMap* get_rules() const;
 };
 
 #endif
index 0ab0e7eff4e0a780081e16f11c1bf635729d2fb5..144ad5d6d3d783c5ee9605cf17b9bb1d11c39aa1 100644 (file)
@@ -22,7 +22,6 @@
 #include "codecs/ip/cd_esp_module.h"
 #include "main/snort_config.h"
 
-
 static const Parameter esp_params[] =
 {
     { "decode_esp", Parameter::PT_BOOL, nullptr, "false",
@@ -45,9 +44,12 @@ static const RuleMap esp_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-EspModule::EspModule() : DecodeModule(CD_ESP_NAME, esp_params, esp_rules)
+EspModule::EspModule() : DecodeModule(CD_ESP_NAME, esp_params)
 { }
 
+const RuleMap* EspModule::get_rules() const
+{ return esp_rules; }
+
 bool EspModule::set(const char*, Value& v, SnortConfig* sc)
 {
     if ( v.is("decode_esp") )
@@ -58,4 +60,3 @@ bool EspModule::set(const char*, Value& v, SnortConfig* sc)
     return true;
 }
 
-
index 5b0594cbde321de51be5c7705d43daf9e957dd59..9c25741bd159b9efd077e77710897d5753550335 100644 (file)
@@ -32,6 +32,7 @@ class EspModule : public DecodeModule
 public:
     EspModule();
 
+    const RuleMap* get_rules() const;
     bool set(const char*, Value&, SnortConfig*);
 };
 
index 42a48150af66160397cfe183fea296cd18937156..611f6584210f4e7dbc28a43645a0e6cc9811f4c5 100644 (file)
 
 #include "codecs/ip/cd_gre_module.h"
 
-
-static const Parameter gre_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 static const RuleMap gre_rules[] =
 {
     { DECODE_GRE_DGRAM_LT_GREHDR, "(" CD_GRE_NAME ") GRE header length > payload length" },
@@ -43,10 +36,9 @@ static const RuleMap gre_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-GreModule::GreModule() : DecodeModule(CD_GRE_NAME, gre_params, gre_rules)
+GreModule::GreModule() : DecodeModule(CD_GRE_NAME)
 { }
 
-bool GreModule::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* GreModule::get_rules() const
+{ return gre_rules; }
+
index 2e0ce889f0ab533ae53bef270b88cdf45ab48cda..0bc0e0f6b030447c6161ae99cc55288ca8766c91 100644 (file)
@@ -32,7 +32,7 @@ class GreModule : public DecodeModule
 public:
     GreModule();
 
-    bool set(const char*, Value&, SnortConfig*);
+    const RuleMap* get_rules() const;
 };
 
 #endif
index f65b5e677532c2b40d0500ee26b1ec4802ad071c..25340d5ad8bbc6e576451a0e537c2c373aa5ec57 100644 (file)
 
 #include "codecs/ip/cd_icmp4_module.h"
 
-
-static const Parameter icmp4_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 // rules which will loaded into snort. 
 // You can now reference these rules by calling a codec_event
 // in your main codec's functions
@@ -65,10 +58,9 @@ static const RuleMap icmp4_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-Icmp4Module::Icmp4Module() : DecodeModule(CD_ICMP4_NAME, icmp4_params, icmp4_rules)
+Icmp4Module::Icmp4Module() : DecodeModule(CD_ICMP4_NAME)
 { }
 
-bool Icmp4Module::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* Icmp4Module::get_rules() const
+{ return icmp4_rules; }
+
index 6eb73cd8a443652897c84f919f36c8862c8b8498..ec2261196178a90baeb9f6055c1940db4918dbda 100644 (file)
@@ -32,7 +32,7 @@ class Icmp4Module : public DecodeModule
 public:
     Icmp4Module();
 
-    bool set(const char*, Value&, SnortConfig*);
+    const RuleMap* get_rules() const;
 };
 
 #endif
index 7387d95e36247ddb24324e2a71796bd538af20af..691c08bbf3c3e4fc77cbae9c7b45b6eaa30c8cf9 100644 (file)
 
 #include "codecs/ip/cd_icmp6_module.h"
 
-
-static const Parameter icmp6_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 // rules which will loaded into snort. 
 // You can now reference these rules by calling a codec_event
 // in your main codec's functions
@@ -51,10 +44,9 @@ static const RuleMap icmp6_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-Icmp6Module::Icmp6Module() : DecodeModule(CD_ICMP6_NAME, icmp6_params, icmp6_rules)
+Icmp6Module::Icmp6Module() : DecodeModule(CD_ICMP6_NAME)
 { }
 
-bool Icmp6Module::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* Icmp6Module::get_rules() const
+{ return icmp6_rules; }
+
index d514765afce4ac18edf6d92c16fc821e54e974fe..031c329db0a3554ce96fb95f8cccd435eeeb3ece 100644 (file)
@@ -32,7 +32,7 @@ class Icmp6Module : public DecodeModule
 public:
     Icmp6Module();
 
-    bool set(const char*, Value&, SnortConfig*);
+    const RuleMap* get_rules() const;
 };
 
 #endif
index 508bae55ae53b5efa152d703fe4439339f8dbefe..0720a709f6677893a7b099e93c1de0f37f3fb7e0 100644 (file)
 
 #include "codecs/ip/cd_igmp_module.h"
 
-
-static const Parameter igmp_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 static const RuleMap igmp_rules[] =
 {
     { DECODE_IGMP_OPTIONS_DOS, "(" CD_IGMP_NAME ") DOS IGMP IP Options validation attempt" },
@@ -38,10 +31,9 @@ static const RuleMap igmp_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-IgmpModule::IgmpModule() : DecodeModule(CD_IGMP_NAME, igmp_params, igmp_rules)
+IgmpModule::IgmpModule() : DecodeModule(CD_IGMP_NAME)
 { }
 
-bool IgmpModule::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* IgmpModule::get_rules() const
+{ return igmp_rules; }
+
index b4902b7e58df9e733c07d37b65100eebab3b0550..d158ae0aab5b4021a73118975678da6155d26fd4 100644 (file)
@@ -32,7 +32,7 @@ class IgmpModule : public DecodeModule
 public:
     IgmpModule();
 
-    bool set(const char*, Value&, SnortConfig*);
+    const RuleMap* get_rules() const;
 };
 
 #endif
index 1ab2352dc82dc2d56ad1c6d000b46027729346ab..da0c0c9264f88eef49ee06f61fc3077cac07c888 100644 (file)
 
 #include "codecs/ip/cd_ipv4_module.h"
 
-
-static const Parameter ipv4_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 // rules which will loaded into snort. 
 // You can now reference these rules by calling a codec_event
 // in your main codec's functions
@@ -67,12 +60,9 @@ static const RuleMap ipv4_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-Ipv4Module::Ipv4Module() : DecodeModule(CD_IPV4_NAME, ipv4_params, ipv4_rules)
+Ipv4Module::Ipv4Module() : DecodeModule(CD_IPV4_NAME)
 { }
 
-bool Ipv4Module::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
-
+const RuleMap* Ipv4Module::get_rules() const
+{ return ipv4_rules; }
 
index 861795aa1bedab5003a50b4abcda346da5b66d58..f0d4ed5393aa33d7131d7ced4307baf0f36a063c 100644 (file)
@@ -32,7 +32,7 @@ class Ipv4Module : public DecodeModule
 public:
     Ipv4Module();
 
-    bool set(const char*, Value&, SnortConfig*);
+    const RuleMap* get_rules() const;
 };
 
 #endif
index b5ac35f5f398347d0407707362d227ea4193b506..ba54e8b7e4c0d08b330fc75d40f01ecba6d98da4 100644 (file)
@@ -66,10 +66,9 @@ static const RuleMap ipv6_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-Ipv6Module::Ipv6Module() : DecodeModule(CD_IPV6_NAME, ipv6_params, ipv6_rules)
+Ipv6Module::Ipv6Module() : DecodeModule(CD_IPV6_NAME, ipv6_params)
 { }
 
-bool Ipv6Module::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* Ipv6Module::get_rules() const
+{ return ipv6_rules; }
+
index ef23eaf088dbfcb88a6a0836e184b08c582012ba..cbb5ff6efd7a545c694d13f9cff41e3175287dad 100644 (file)
@@ -32,8 +32,7 @@ class Ipv6Module : public DecodeModule
 public:
     Ipv6Module();
 
-    bool set(const char*, Value&, SnortConfig*);
-
+    const RuleMap* get_rules() const;
 };
 
 #endif
index 71b9ed7219973055340499141038e3806ace5535..dd37c564bd60146227d146c17bbbb9a27c11c39c 100644 (file)
 
 #include "codecs/ip/cd_pgm_module.h"
 
-
-static const Parameter pgm_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 static const RuleMap pgm_rules[] =
 {
     { DECODE_PGM_NAK_OVERFLOW, "(" CD_PGM_NAME ") BAD-TRAFFIC PGM nak list overflow attempt" },
@@ -38,10 +31,9 @@ static const RuleMap pgm_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-PgmModule::PgmModule() : DecodeModule(CD_PGM_NAME, pgm_params, pgm_rules)
+PgmModule::PgmModule() : DecodeModule(CD_PGM_NAME)
 { }
 
-bool PgmModule::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* PgmModule::get_rules() const
+{ return pgm_rules; }
+
index 8795c2d153a0dfe196428c230bb072d83f02a144..aba62cfacfd34cbb5527bcde78b03547232dcd9e 100644 (file)
@@ -32,7 +32,7 @@ class PgmModule : public DecodeModule
 public:
     PgmModule();
 
-    bool set(const char*, Value&, SnortConfig*);
+    const RuleMap* get_rules() const;
 };
 
 #endif
index a2ae4c434305729156f91f714b68cd73d3fb87e1..a811d6308048d08a0fe35e4e4c7e8762fca6192b 100644 (file)
 
 #include "codecs/ip/cd_tcp_module.h"
 
-
-static const Parameter tcp_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 // rules which will loaded into snort. 
 // You can now reference these rules by calling a codec_event
 // in your main codec's functions
@@ -61,10 +54,9 @@ static const RuleMap tcp_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-TcpModule::TcpModule() : DecodeModule(CD_TCP_NAME, tcp_params, tcp_rules)
+TcpModule::TcpModule() : DecodeModule(CD_TCP_NAME)
 { }
 
-bool TcpModule::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* TcpModule::get_rules() const
+{ return tcp_rules; }
+
index 49b9b83a63fe99efce84049e5ed1108c369a8ae2..87955cd356d5e746f866ea0eaa954a3d9a7fde30 100644 (file)
@@ -32,8 +32,7 @@ class TcpModule : public DecodeModule
 public:
     TcpModule();
 
-    bool set(const char*, Value&, SnortConfig*);
-
+    const RuleMap* get_rules() const;
 };
 
 #endif
index 53a03a25243bf73defe10d6d8b1b6a49090f5d01..c392cd174e394e4aa18dfc63871d6e93c1db9999 100644 (file)
@@ -58,9 +58,12 @@ static const RuleMap udp_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-UdpModule::UdpModule() : DecodeModule(CD_UDP_NAME, udp_params, udp_rules)
+UdpModule::UdpModule() : DecodeModule(CD_UDP_NAME, udp_params)
 { }
 
+const RuleMap* UdpModule::get_rules() const
+{ return udp_rules; }
+
 bool UdpModule::set(const char*, Value& v, SnortConfig* sc)
 {
     if ( v.is("deep_teredo_inspection") )
index 7b111754519b89a2c2868c3d58643d37da2711ff..73fc43a887b9c1afac98e0e6cd70ff2a88668889 100644 (file)
@@ -32,8 +32,8 @@ class UdpModule : public DecodeModule
 public:
     UdpModule();
 
+    const RuleMap* get_rules() const;
     bool set(const char*, Value&, SnortConfig*);
-
 };
 
 #endif
index d9daa6313291b89ece268d59a966f92f6b7a3fdf..2505084c1c6268779c85f3b2832409098e648b1f 100644 (file)
 
 #include "codecs/link/cd_arp_module.h"
 
-
-static const Parameter arp_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 static const RuleMap arp_rules[] =
 {
     { DECODE_ARP_TRUNCATED, "(" CD_ARP_NAME ") Truncated ARP" },
@@ -38,10 +31,9 @@ static const RuleMap arp_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-ArpModule::ArpModule() : DecodeModule(CD_ARP_NAME, arp_params, arp_rules)
+ArpModule::ArpModule() : DecodeModule(CD_ARP_NAME)
 { }
 
-bool ArpModule::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* ArpModule::get_rules() const
+{ return arp_rules; }
+
index 4f1098d20a6c50f2f9d56f9570f7eb67a3cf43ac..2fb01da6ed6d88843959cc05d0dfb83f397d6cee 100644 (file)
@@ -32,7 +32,7 @@ class ArpModule : public DecodeModule
 public:
     ArpModule();
 
-    bool set(const char*, Value&, SnortConfig*);
+    const RuleMap* get_rules() const;
 };
 
 #endif
index 3678b36476d58f935e46ac7ba9d3de1404b44a10..831918c8f90cad57f06b18bb7cd040ee35f47770 100644 (file)
 
 #include "codecs/link/cd_eapol_module.h"
 
-
-static const Parameter eapol_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 static const RuleMap eapol_rules[] =
 {
     { DECODE_EAPOL_TRUNCATED, "(" CD_EAPOL_NAME ") Truncated EAP Header" },
@@ -40,10 +33,9 @@ static const RuleMap eapol_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-EapolModule::EapolModule() : DecodeModule(CD_EAPOL_NAME, eapol_params, eapol_rules)
+EapolModule::EapolModule() : DecodeModule(CD_EAPOL_NAME)
 { }
 
-bool EapolModule::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* EapolModule::get_rules() const
+{ return eapol_rules; }
+
index cbbbc5acbfbd90196c181b8f77b96ce623cc927e..40c3819da66491aa10ebbe644d5bbaf543156382 100644 (file)
@@ -32,6 +32,7 @@ class EapolModule : public DecodeModule
 public:
     EapolModule();
 
+    const RuleMap* get_rules() const;
     bool set(const char*, Value&, SnortConfig*);
 };
 
index 24e40407956bbf5fb0589f4872e5f2b35456fc97..dd23c1c6da0060a2161f4728e8483cb03076ba27 100644 (file)
 
 #include "codecs/link/cd_erspan2_module.h"
 
-
-static const Parameter erspan2_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 static const RuleMap erspan2_rules[] =
 {
     { DECODE_ERSPAN_HDR_VERSION_MISMATCH, "(codec_erspan) ERSpan Header version mismatch" },
@@ -39,10 +32,9 @@ static const RuleMap erspan2_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-Erspan2Module::Erspan2Module() : DecodeModule(CD_ERSPAN2_NAME, erspan2_params, erspan2_rules)
+Erspan2Module::Erspan2Module() : DecodeModule(CD_ERSPAN2_NAME)
 { }
 
-bool Erspan2Module::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* Erspan2Module::get_rules() const
+{ return erspan2_rules; }
+
index ec4acf4bd387f3c8246c3581577c85e1ae39fbf2..cf76e2cf7bd3222cb7264629ee182a0e4f7a136a 100644 (file)
@@ -32,7 +32,7 @@ class Erspan2Module : public DecodeModule
 public:
     Erspan2Module();
 
-    bool set(const char*, Value&, SnortConfig*);
+    const RuleMap* get_rules() const;
 };
 
 #endif
index 25fd028bd0098cfa87b817a58fa42478c90cfbc4..bf48f22e1db45ed66700bb67b2d528333305dc1e 100644 (file)
 
 #include "codecs/link/cd_erspan3_module.h"
 
-
-static const Parameter erspan3_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 static const RuleMap erspan3_rules[] =
 {
     { DECODE_ERSPAN3_DGRAM_LT_HDR, "(" CD_ERSPAN3_NAME ") captured < ERSpan Type3 Header Length" },
@@ -38,10 +31,9 @@ static const RuleMap erspan3_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-Erspan3Module::Erspan3Module() : DecodeModule(CD_ERSPAN3_NAME, erspan3_params, erspan3_rules)
+Erspan3Module::Erspan3Module() : DecodeModule(CD_ERSPAN3_NAME)
 { }
 
-bool Erspan3Module::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* Erspan3Module::get_rules() const
+{ return erspan3_rules; }
+
index f578b9f571a917148d968b2dd457138fbf80a9e6..5b1d86270553fdebbc62953edd3a70828598bdcb 100644 (file)
@@ -32,7 +32,7 @@ class Erspan3Module : public DecodeModule
 public:
     Erspan3Module();
 
-    bool set(const char*, Value&, SnortConfig*);
+    const RuleMap* get_rules() const;
 };
 
 #endif
index e2eee6f712d2cfac9ff9c96bdbb2d780bb848ef9..a02354cf3de69fd2189e86870f1edfe3e094efc7 100644 (file)
@@ -60,9 +60,12 @@ static const RuleMap mpls_rules[] =
 // mpls module
 //-------------------------------------------------------------------------
 
-MplsModule::MplsModule() : DecodeModule(CD_MPLS_NAME, mpls_params, mpls_rules)
+MplsModule::MplsModule() : DecodeModule(CD_MPLS_NAME, mpls_params)
 { }
 
+const RuleMap* MplsModule::get_rules() const
+{ return mpls_rules; }
+
 bool MplsModule::set(const char*, Value& v, SnortConfig* sc)
 { 
     if ( v.is("enable_mpls_multicast") )
index 8ec811b7ef90ca59e46f01bffa5ceddc8aa9f9c1..15ef5d5a34d9b8d04e879896536d23f8ad2f3d9e 100644 (file)
@@ -32,8 +32,8 @@ class MplsModule : public DecodeModule
 public:
     MplsModule();
 
+    const RuleMap* get_rules() const;
     bool set(const char*, Value&, SnortConfig*);
-
 };
 
 #endif
index ebed2cd046e8b5b91285fd23d06229b75f7276fa..fbf6420b25d909eef4778d4612c865701a088630 100644 (file)
 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */
 
-// cd_pppoepkt_module.cc author Josh Rosenbaum <jrosenba@cisco.com>
+// cd_pppoe_module.cc author Josh Rosenbaum <jrosenba@cisco.com>
 
 #include "codecs/link/cd_pppoe_module.h"
 
-
-static const Parameter pppoepkt_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
-static const RuleMap pppoepkt_rules[] =
+static const RuleMap pppoe_rules[] =
 {
     { DECODE_BAD_PPPOE, "(" CD_PPPOE_NAME ") Bad PPPOE frame detected" },
     { 0, nullptr }
@@ -44,10 +37,9 @@ static const RuleMap pppoepkt_rules[] =
 //-------------------------------------------------------------------------
 
 /// ^^^  READ THE COMMENT!
-PPPoEModule::PPPoEModule() : DecodeModule(CD_PPPOE_NAME, pppoepkt_params, pppoepkt_rules)
+PPPoEModule::PPPoEModule() : DecodeModule(CD_PPPOE_NAME)
 { }
 
-bool PPPoEModule::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* PPPoEModule::get_rules() const
+{ return pppoe_rules; }
+
index 5f40ffd855804271a2a0a0f083324d84efbd70d9..3bcb00ba1efa017e7d7675d8e1b30ed578bd9cd5 100644 (file)
@@ -41,7 +41,7 @@ class PPPoEModule : public DecodeModule
 public:
     PPPoEModule();
 
-    bool set(const char*, Value&, SnortConfig*);
+    const RuleMap* get_rules() const;
 };
 
 #endif
index 4a5076f4b6f4ac2ed013b6fb5d869b41708b4e2e..05202f47aa7c50ff9118275a2385db65d2b79280 100644 (file)
 
 #include "codecs/link/cd_vlan_module.h"
 
-
-static const Parameter vlan_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 static const RuleMap vlan_rules[] =
 {
     { DECODE_BAD_VLAN, "(" CD_VLAN_NAME ") Bad VLAN Frame" },
@@ -40,10 +33,9 @@ static const RuleMap vlan_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-VlanModule::VlanModule() : DecodeModule(CD_VLAN_NAME, vlan_params, vlan_rules)
+VlanModule::VlanModule() : DecodeModule(CD_VLAN_NAME)
 { }
 
-bool VlanModule::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* VlanModule::get_rules() const
+{ return vlan_rules; }
+
index 2f2e75c16a7c313fc03d9b735a0ca6e2f8d0929d..6770fe477a89451d43b1d34f37e1393e2d3d783a 100644 (file)
@@ -32,7 +32,7 @@ class VlanModule : public DecodeModule
 public:
     VlanModule();
 
-    bool set(const char*, Value&, SnortConfig*);
+    const RuleMap* get_rules() const;
 };
 
 #endif
index 34966224f1f48d253a0daa85b833b134d048b8bb..a4d475bf14fedb0e1ca77bdc7f8f98ffbb33ab6e 100644 (file)
 
 #include "codecs/misc/cd_gtp_module.h"
 
-
-static const Parameter gtp_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 static const RuleMap gtp_rules[] =
 {
 
@@ -40,10 +33,9 @@ static const RuleMap gtp_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-GtpModule::GtpModule() : DecodeModule(CD_GTP_NAME, gtp_params, gtp_rules)
+GtpModule::GtpModule() : DecodeModule(CD_GTP_NAME)
 { }
 
-bool GtpModule::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* GtpModule::get_rules() const
+{ return gtp_rules; }
+
index add09ebe7dcc9aea8e4ea43de3285fb013416606..d3a1f42b64b5570995f7afb4f2cdf08b000df137 100644 (file)
@@ -32,7 +32,7 @@ class GtpModule : public DecodeModule
 public:
     GtpModule();
 
-    bool set(const char*, Value&, SnortConfig*);
+    const RuleMap* get_rules() const;
 };
 
 #endif
index 9b0e001aef59a3bee974cd841892289a869881db..8351529c1c1643b1467381c157dcc5341c408e9a 100644 (file)
 
 #include "codecs/root/cd_eth_module.h"
 
-
-static const Parameter eth_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 static const RuleMap eth_rules[] =
 {
     { DECODE_ETH_HDR_TRUNC, "(" CD_ETH_NAME ") truncated eth header" },
@@ -38,10 +31,9 @@ static const RuleMap eth_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-EthModule::EthModule() : DecodeModule(CD_ETH_NAME, eth_params, eth_rules)
+EthModule::EthModule() : DecodeModule(CD_ETH_NAME)
 { }
 
-bool EthModule::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* EthModule::get_rules() const
+{ return eth_rules; }
+
index 15f0e10eb83e7e346634bee34e2480a15153f20e..ed40284d767e41b6526311e8ef66968f4ea34f06 100644 (file)
@@ -32,7 +32,7 @@ class EthModule : public DecodeModule
 public:
     EthModule();
 
-    bool set(const char*, Value&, SnortConfig*);
+    const RuleMap* get_rules() const;
 };
 
 #endif
index 6d9cd0a71c60c2c918ddf4eb83e230ba6d86797c..ed9fa3fadff6996e8254b438062fd3287157a02e 100644 (file)
 
 #include "codecs/root/cd_wlan_module.h"
 
-
-static const Parameter wifi_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
-
 static const RuleMap wifi_rules[] =
 {
     { DECODE_BAD_80211_ETHLLC, "(" CD_WLAN_NAME ") Bad 802.11 LLC header" },
@@ -39,10 +32,9 @@ static const RuleMap wifi_rules[] =
 // wifi module
 //-------------------------------------------------------------------------
 
-WlanCodecModule::WlanCodecModule() : DecodeModule(CD_WLAN_NAME, wifi_params, wifi_rules)
+WlanCodecModule::WlanCodecModule() : DecodeModule(CD_WLAN_NAME)
 { }
 
-bool WlanCodecModule::set(const char*, Value&, SnortConfig*)
-{
-    return true;
-}
+const RuleMap* WlanCodecModule::get_rules() const
+{ return wifi_rules; }
+
index 554707b2ce1afab4a8b0115bb084be4f1fb6c639..25a4e80437e36d4e30b508857908017a1b70edc4 100644 (file)
@@ -32,6 +32,7 @@ class WlanCodecModule : public DecodeModule
 public:
     WlanCodecModule();
 
+    const RuleMap* get_rules() const;
     bool set(const char*, Value&, SnortConfig*);
 };
 
index 5ea8a8149a620b417e9aeebf72edcf7e01329be9..985f17e1f30d79c205aecaf221a67b30f526d3f7 100644 (file)
@@ -23,6 +23,7 @@ add_library ( framework STATIC
     inspector.cc
     ips_option.cc
     parameter.cc
+    module.cc
     mpse.cc
     value.cc
 )
index ee5871a60717fd03fd835c4973a6033982226b55..df9278f07e2fea387b045ae949b426f6bd986e19 100644 (file)
@@ -25,6 +25,7 @@ cursor.cc \
 inspector.cc \
 ips_option.cc \
 parameter.cc \
+module.cc \
 mpse.cc \
 value.cc
 
index b31ab391639e3b39742058421e921892f8069a1a..796948937a3173a6ecbcd84ebeaf022f317b08f3 100644 (file)
@@ -34,6 +34,7 @@
 
 #include "framework/value.h"
 #include "framework/parameter.h"
+#include "framework/counts.h"
 
 struct SnortConfig;
 
@@ -57,6 +58,7 @@ class Module
 public:
     virtual ~Module() { };
 
+    // configuration:
     // for lists (tables with numeric indices):
     // int == 0 is list container
     // int > 0 is list item
@@ -66,20 +68,13 @@ public:
     virtual bool end(const char*, int, SnortConfig*)
     { return true; };
 
-    virtual bool set(const char*, Value&, SnortConfig*) = 0;
+    virtual bool set(const char*, Value&, SnortConfig*)
+    { return !get_parameters(); };
 
+    // ips events:
     virtual unsigned get_gid() const
     { return 0; };
 
-    // profile is thread local
-    virtual ProfileStats* get_profile() const
-    { return nullptr; };
-
-    // implement above -or- below
-    virtual ProfileStats* get_profile(
-        unsigned /*index*/, const char*& /*name*/, const char*& /*parent*/) const
-    { return nullptr; };
-
     const char* get_name() const
     { return name ? name : params->name; };
 
@@ -102,30 +97,34 @@ public:
     const Parameter* get_parameters() const
     { return params; };
 
-    const Command* get_commands() const
-    { return cmds; };
+    virtual const Command* get_commands() const
+    { return nullptr; };
 
-    const RuleMap* get_rules() const
-    { return rules; };
+    virtual const RuleMap* get_rules() const
+    { return nullptr; };
 
-protected:
-    Module(const char* s, const Parameter* p, bool is_list = false)
-    { init(s, p); list = is_list; };
+    virtual const char* get_pegs() const
+    { return nullptr; };
 
-    Module(const char* s, const Parameter* p, const RuleMap* r)
-    { init(s, p); rules = r; };
+    // counts and profile are thread local
+    virtual const PegCount* get_counts() const
+    { return nullptr; };
 
-    Module(const char* s, const Parameter* p, const Command* c)
-    { init(s, p); cmds = c; };
+    virtual ProfileStats* get_profile() const
+    { return nullptr; };
 
-    Module(const char* s, const Parameter* p, const RuleMap* r, const Command* c)
-    { init(s, p); rules = r; cmds = c; };
+    // implement above -or- below
+    virtual ProfileStats* get_profile(
+        unsigned /*index*/, const char*& /*name*/, const char*& /*parent*/) const
+    { return nullptr; };
+
+protected:
+    Module(const char* s);
+    Module(const char* s, const Parameter* p, bool is_list = false);
 
 private:
     friend class ModuleManager;
-
-    void init(const char* s, const Parameter* p)
-    { name = s; params = p; list = false; cmds = nullptr; rules = nullptr; };
+    void init(const char* s);
 
     bool list;
     const char* name;
index d640170f47adb12dc229de93155bdf7dd4ab3e35..86e440150e929f6c7685f19d1339d337033f1bc2 100644 (file)
@@ -1619,11 +1619,6 @@ bool RuleStateModule::end(const char*, int idx, SnortConfig* sc)
 // snort module
 //-------------------------------------------------------------------------
 
-static const Parameter snort_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
 static const Command snort_cmds[] =
 {
     { "show_plugins", main_dump_plugins, "show available plugins" },
@@ -1642,7 +1637,8 @@ static const Command snort_cmds[] =
 class SnortModule : public Module
 {
 public:
-    SnortModule() : Module("snort", snort_params, snort_cmds) { };
+    SnortModule() : Module("snort") { };
+    const Command* get_commands() const { return snort_cmds; };
     bool set(const char*, Value&, SnortConfig*) { return false; };
 };
 
index 2391d4c5698c8b2d95ab12c2728a5cf75ad30813..8a7fbc0a5cd55164a69c42c6ea8c47854cd967ee 100644 (file)
@@ -80,7 +80,7 @@ static const RuleMap arp_spoof_rules[] =
 //-------------------------------------------------------------------------
 
 ArpSpoofModule::ArpSpoofModule() : 
-    Module(mod_name, arp_spoof_params, arp_spoof_rules)
+    Module(mod_name, arp_spoof_params)
 {
     config = new ArpSpoofConfig;
 
@@ -94,6 +94,9 @@ ArpSpoofModule::~ArpSpoofModule()
         delete config;
 }
 
+const RuleMap* ArpSpoofModule::get_rules() const
+{ return arp_spoof_rules; }
+
 ProfileStats* ArpSpoofModule::get_profile() const
 { return &arpPerfStats; }
 
index 1c803decdc07d725efd24f3c62d9f9ee5c88d40b..6f55451753231dc98826ea4e5bbb1d4eca3494cf 100644 (file)
@@ -74,6 +74,7 @@ public:
     unsigned get_gid() const
     { return GID_ARP_SPOOF; };
 
+    const RuleMap* get_rules() const;
     ProfileStats* get_profile() const;
 
 private:
index 8cc6ee58543d77c1a839032c4a73a1e774115bee..9598139a470ac76aed61ad7be32a7bc9a5376ad9 100644 (file)
@@ -103,7 +103,7 @@ static const RuleMap port_scan_rules[] =
 //-------------------------------------------------------------------------
 
 PortScanModule::PortScanModule() :
-    Module("port_scan", port_scan_params, port_scan_rules)
+    Module("port_scan", port_scan_params)
 {
     config = nullptr;
 }
@@ -114,6 +114,9 @@ PortScanModule::~PortScanModule()
         delete config;
 }
 
+const RuleMap* PortScanModule::get_rules() const
+{ return port_scan_rules; }
+
 //-------------------------------------------------------------------------
 // FIXIT ipset_parse() format must be changed to remove comma
 // separators between tokens which means using something other than
index 21dda6cca0c9a2ee3e65ca64c64b68680555ae61..5397bb119b4024c535ce3878a71c502cd0542751 100644 (file)
@@ -60,6 +60,8 @@ public:
     bool set(const char*, Value&, SnortConfig*);
     bool begin(const char*, int, SnortConfig*);
 
+    const RuleMap* get_rules() const;
+
     unsigned get_gid() const
     { return GID_PORT_SCAN; };
 
index 28762a451a8dbb7cede7f82b6c07af91363d6bf1..ec8509faa6d8b92d9bdb4a6c20e9c9eefe055113 100644 (file)
@@ -177,11 +177,6 @@ static SimpleStats gbostats;
 #define BO_SNORT_BUFFER_ATTACK_STR \
     "(back_orifice) BO Snort buffer attack"
 
-static const Parameter bo_params[] =
-{
-    { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
-};
-
 static const RuleMap bo_rules[] =
 {
     { BO_TRAFFIC_DETECT, BO_TRAFFIC_DETECT_STR },
@@ -195,11 +190,11 @@ static const RuleMap bo_rules[] =
 class BoModule : public Module
 {
 public:
-    BoModule() : Module("back_orifice", bo_params, bo_rules)
+    BoModule() : Module("back_orifice")
     { };
 
-    bool set(const char*, Value&, SnortConfig*)
-    { return false; };
+    const RuleMap* get_rules() const
+    { return bo_rules; };
 
     unsigned get_gid() const
     { return GID_BO; };
index 1abc50b3b4ff06ff48d745f24285db6a6d66b9da..13c91fb5896129a27769851359f7a08528f05032 100644 (file)
@@ -342,7 +342,7 @@ static const RuleMap ftp_server_rules[] =
 //-------------------------------------------------------------------------
 
 FtpServerModule::FtpServerModule() :
-    Module(FTP_SERVER, ftp_server_params, ftp_server_rules)
+    Module(FTP_SERVER, ftp_server_params)
 {
     conf = nullptr;
 }
@@ -356,6 +356,9 @@ FtpServerModule::~FtpServerModule()
         delete p;
 }
 
+const RuleMap* FtpServerModule::get_rules() const
+{ return ftp_server_rules; }
+
 ProfileStats* FtpServerModule::get_profile() const
 { return &ftpPerfStats; }
 
index ca5db787045ec333f66e8b9c39748161083ec6f0..ad5887151f412e1de72c477ea83db799f1b1bf68 100644 (file)
@@ -116,6 +116,7 @@ public:
     unsigned get_gid() const
     { return GID_FTP; };
 
+    const RuleMap* get_rules() const;
     ProfileStats* get_profile() const;
 
     FTP_SERVER_PROTO_CONF* get_data();
index 8a81170cdfde1c23df3662fc587e1eac2a29c74b..5e570bce99b5b0de94804aeea9b4892b3b58000b 100644 (file)
@@ -66,7 +66,7 @@ static const RuleMap telnet_rules[] =
 };
 
 TelnetModule::TelnetModule() :
-    Module("telnet", telnet_params, telnet_rules)
+    Module("telnet", telnet_params)
 {
     conf = nullptr;
 }
@@ -77,6 +77,9 @@ TelnetModule::~TelnetModule()
         delete conf;
 }
 
+const RuleMap* TelnetModule::get_rules() const
+{ return telnet_rules; }
+
 ProfileStats* TelnetModule::get_profile() const
 { return &telnetPerfStats; }
 
index fc0b61f9fac6969eeabd101ff99309222ffced94..0f74e21e39e5c50c939e0d59b811a9306dbdb971 100644 (file)
@@ -49,6 +49,7 @@ public:
     unsigned get_gid() const
     { return GID_TELNET; };
 
+    const RuleMap* get_rules() const;
     ProfileStats* get_profile() const;
 
     TELNET_PROTO_CONF* get_data();
index ca7de36b3d835912dbbb2d293766e32d0414512b..0bb946eac0e67794848b8c8d4697f2b445e61c9c 100644 (file)
@@ -138,7 +138,7 @@ static const RuleMap hi_global_rules[] =
 };
 
 HttpInspectModule::HttpInspectModule() :
-    Module(GLOBAL_KEYWORD, hi_global_params, hi_global_rules)
+    Module(GLOBAL_KEYWORD, hi_global_params)
 {
     config = nullptr;
 }
@@ -149,6 +149,9 @@ HttpInspectModule::~HttpInspectModule()
         delete config;
 }
 
+const RuleMap* HttpInspectModule::get_rules() const
+{ return hi_global_rules; }
+
 ProfileStats* HttpInspectModule::get_profile() const
 { return &hiPerfStats; }
 
@@ -405,7 +408,7 @@ static const RuleMap hi_server_rules[] =
 };
 
 HttpServerModule::HttpServerModule() :
-    Module(SERVER_KEYWORD, hi_server_params, hi_server_rules)
+    Module(SERVER_KEYWORD, hi_server_params)
 { 
     server = nullptr;
 }
@@ -416,6 +419,9 @@ HttpServerModule::~HttpServerModule()
         delete server;
 }
 
+const RuleMap* HttpServerModule::get_rules() const
+{ return hi_server_rules; }
+
 HTTPINSPECT_CONF* HttpServerModule::get_data()
 {
     HTTPINSPECT_CONF* tmp = server;
index b10f37852cd855c83cec32e4760179ee994806e9..951c5b256b273d9a01e290b274f65f0892b3762e 100644 (file)
@@ -44,6 +44,7 @@ public:
     unsigned get_gid() const
     { return GID_HTTP_CLIENT; };
 
+    const RuleMap* get_rules() const;
     ProfileStats* get_profile() const;
 
     HTTPINSPECT_GLOBAL_CONF* get_data();
@@ -62,6 +63,8 @@ public:
     bool begin(const char*, int, SnortConfig*);
     bool end(const char*, int, SnortConfig*);
 
+    const RuleMap* get_rules() const;
+
     unsigned get_gid() const
     { return GID_HTTP_SERVER; };
 
index 73b5670e1bc43298ecbf23b1c43f5de178842e30..c51234f48274683025c10c4eee25317ff59b10e4 100644 (file)
 #include "nhttp_enum.h"
 #include "nhttp_module.h"
 
-NHttpModule::NHttpModule() : Module("nhttp_inspect", nhttpParams, nhttpEvents) {
-}
+NHttpModule::NHttpModule() : Module("nhttp_inspect", nhttpParams)
+{ }
+
+const RuleMap* NHttpModule::get_rules() const
+{ return nhttpEvents; }
 
 const Parameter NHttpModule::nhttpParams[] =
     {{ "test_input", Parameter::PT_BOOL, nullptr, "false", "read HTTP messages from text file" },
index dd7f124a5543e97d151f23518e88eab13bacb1c7..2f996c87ed1152d9d5700ccae97ce88ebe7b4bf0 100644 (file)
@@ -39,6 +39,7 @@ public:
     bool end(const char*, int, SnortConfig*);
     bool set(const char*, Value&, SnortConfig*);
     unsigned get_gid() const;
+    const RuleMap* get_rules() const;
     bool get_test_input() const { return test_input; };
     bool get_test_output() const { return test_output; };
 
index 146aeeb8a4ab7bea1bdbd7c5a1d103ee806f6418..9431a96f2d6ab49bede6055cab47e3b2d7bd099f 100644 (file)
@@ -53,9 +53,12 @@ static const RuleMap rpc_rules[] =
 // rpc module
 //-------------------------------------------------------------------------
 
-RpcModule::RpcModule() : Module("rpc_decode", rpc_params, rpc_rules)
+RpcModule::RpcModule() : Module("rpc_decode", rpc_params)
 { }
 
+const RuleMap* RpcModule::get_rules() const
+{ return rpc_rules; }
+
 ProfileStats* RpcModule::get_profile() const
 { return &rpcdecodePerfStats; }
 
index f6ab32818d6bb585410c68570b74b1f5a0f40c0c..f2ead7748fef1d6a97c3594ffd9fd6d35e911db3 100644 (file)
@@ -47,6 +47,7 @@ public:
     unsigned get_gid() const
     { return GID_RPC_DECODE; };
 
+    const RuleMap* get_rules() const;
     ProfileStats* get_profile() const;
 };
 
index 881d343f8499cdc73754e10b2c8196d8cda761be..f0c8012c501996bf8dc761f78f72523b44f14c4d 100644 (file)
@@ -76,13 +76,8 @@ static const Parameter stream_params[] =
     { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
 };
 
-static const RuleMap stream_rules[] =
-{
-    { 0, nullptr }
-};
-
 StreamModule::StreamModule() :
-    Module(MOD_NAME, stream_params, stream_rules)
+    Module(MOD_NAME, stream_params)
 {
     proto = &stream_cfg.ip_cfg;
 }
index 71019b7119e5ccfbb53879a678f6d72f4222a2b4..d8569fe2ace879626f924fded0b7e9e8b24f71cb 100644 (file)
@@ -39,13 +39,8 @@ static const Parameter stream_icmp_params[] =
     { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
 };
 
-static const RuleMap stream_icmp_rules[] =
-{
-    { 0, nullptr }
-};
-
 StreamIcmpModule::StreamIcmpModule() :
-    Module(MOD_NAME, stream_icmp_params, stream_icmp_rules)
+    Module(MOD_NAME, stream_icmp_params)
 {
     config = nullptr;
 }
index af67da5a25e7c845457af04ef04ade522a581a0d..b132eb7a04d2e07cac5e8f7b6b296ae000765c48 100644 (file)
@@ -120,7 +120,7 @@ static const Parameter stream_ip_params[] =
 };
 
 StreamIpModule::StreamIpModule() :
-    Module(MOD_NAME, stream_ip_params, stream_ip_rules)
+    Module(MOD_NAME, stream_ip_params)
 {
     config = nullptr;
 }
@@ -131,6 +131,9 @@ StreamIpModule::~StreamIpModule()
         delete config;
 }
 
+const RuleMap* StreamIpModule::get_rules() const
+{ return stream_ip_rules; }
+
 ProfileStats* StreamIpModule::get_profile(
     unsigned index, const char*& name, const char*& parent) const
 {
index 33a847da1d06ae288e29b252daa92c278eef342a..b0aec0339c35d0c4e2f04224ce64a99ff67a66cf 100644 (file)
@@ -77,6 +77,7 @@ public:
     bool begin(const char*, int, SnortConfig*);
     bool end(const char*, int, SnortConfig*);
 
+    const RuleMap* get_rules() const;
     ProfileStats* get_profile(unsigned, const char*&, const char*&) const;
     StreamIpConfig* get_data();
 
index 2af94a83a218ae96bd9042aff38121b917a2c376..e7cb1a3b765c03ae68a4b016705310bf6f91b100 100644 (file)
@@ -199,7 +199,7 @@ static const RuleMap stream_tcp_rules[] =
 };
 
 StreamTcpModule::StreamTcpModule() :
-    Module(MOD_NAME, stream_tcp_params, stream_tcp_rules)
+    Module(MOD_NAME, stream_tcp_params)
 {
     config = nullptr;
 }
@@ -210,6 +210,9 @@ StreamTcpModule::~StreamTcpModule()
         delete p;
 }
 
+const RuleMap* StreamTcpModule::get_rules() const
+{ return stream_tcp_rules; }
+
 ProfileStats* StreamTcpModule::get_profile(
     unsigned index, const char*& name, const char*& parent) const
 {
index 1edaa8874c1dd6666ec5b51e1cc136fea9d56a28..04792883242c17ed4eb2c95e69fa16f01a736060 100644 (file)
@@ -91,6 +91,8 @@ public:
     bool begin(const char*, int, SnortConfig*);
     bool end(const char*, int, SnortConfig*);
 
+    const RuleMap* get_rules() const;
+
     unsigned get_gid() const
     { return GID_STREAM_TCP; };
 
index 75e24aafa9b3bb7df9f3f7c4982232adc5dcfc99..34a85f0fdb8704f4d9f95ce00fbed654e8be2e80 100644 (file)
@@ -42,13 +42,8 @@ static const Parameter stream_udp_params[] =
     { nullptr, Parameter::PT_MAX, nullptr, nullptr, nullptr }
 };
 
-static const RuleMap stream_udp_rules[] =
-{
-    { 0, nullptr }
-};
-
 StreamUdpModule::StreamUdpModule() :
-    Module(MOD_NAME, stream_udp_params, stream_udp_rules)
+    Module(MOD_NAME, stream_udp_params)
 {
     config = nullptr;
 }
index ff620fba06d5235d4dede492d864380d8deb3973..b4e7bec0841dc49cb41c02fb3a26ec18172c9b07 100644 (file)
@@ -87,7 +87,10 @@ static const RuleMap ppm_rules[] =
 // ppm module
 //-------------------------------------------------------------------------
 
-PpmModule::PpmModule() : Module("ppm", ppm_params, ppm_rules) { }
+PpmModule::PpmModule() : Module("ppm", ppm_params) { }
+
+const RuleMap* PpmModule::get_rules() const
+{ return ppm_rules; }
 
 bool PpmModule::set(const char*, Value& v, SnortConfig* sc)
 {
index 363b4d77ffa3e6dedc093564e3d9b325915c01f4..92148b73a84685ce010922498effcdd9531682ca 100644 (file)
@@ -41,6 +41,8 @@ public:
     PpmModule();
     bool set(const char*, Value&, SnortConfig*);
 
+    const RuleMap* get_rules() const;
+
     unsigned get_gid() const
     { return GID_PPM; };
 };
index 69aa6f6c8b19e59371da0ce2f51b966a490b05f3..5c31f2b067a0c613344a1ff86b3d3a4ed2f3de21 100644 (file)
@@ -38,8 +38,7 @@
 #include "sfip/sf_ipvar.h"
 #include "sfip/ipv6_port.h"
 #include "utils/sflsq.h"
-
-typedef uint64_t PegCount;
+#include "framework/counts.h"
 
 struct PacketCount
 {
@@ -68,16 +67,9 @@ struct ProcessCount
     PegCount attribute_table_hosts;
 };
 
-struct SimpleStats
-{
-    PegCount total_packets;
-};
-
 extern ProcessCount proc_stats;
 extern THREAD_LOCAL PacketCount pc; 
 
-#define array_size(a) (sizeof(a)/sizeof(a[0]))
-
 void sum_stats(PegCount* sums, PegCount* counts, unsigned n);
 void show_stats(PegCount*, const char* names[], unsigned n,
     const char* module_name = nullptr);