From: Russ Combs Date: Tue, 15 Jul 2014 14:15:33 +0000 (-0400) Subject: reworked module methods X-Git-Tag: 3.0.0-233~1444^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=feabe8889fba2770b37c596ce0c9e28c8ff7eab3;p=thirdparty%2Fsnort3.git reworked module methods --- diff --git a/src/codecs/decode_module.h b/src/codecs/decode_module.h index ec33535d3..06eedd508 100644 --- a/src/codecs/decode_module.h +++ b/src/codecs/decode_module.h @@ -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; }; diff --git a/src/codecs/ip/cd_auth_module.cc b/src/codecs/ip/cd_auth_module.cc index dd264abcf..bdfc2f817 100644 --- a/src/codecs/ip/cd_auth_module.cc +++ b/src/codecs/ip/cd_auth_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/ip/cd_auth_module.h b/src/codecs/ip/cd_auth_module.h index 0127346ac..5508a906c 100644 --- a/src/codecs/ip/cd_auth_module.h +++ b/src/codecs/ip/cd_auth_module.h @@ -32,7 +32,7 @@ class AhModule : public DecodeModule public: AhModule(); - bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/ip/cd_esp_module.cc b/src/codecs/ip/cd_esp_module.cc index 0ab0e7eff..144ad5d6d 100644 --- a/src/codecs/ip/cd_esp_module.cc +++ b/src/codecs/ip/cd_esp_module.cc @@ -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; } - diff --git a/src/codecs/ip/cd_esp_module.h b/src/codecs/ip/cd_esp_module.h index 5b0594cbd..9c25741bd 100644 --- a/src/codecs/ip/cd_esp_module.h +++ b/src/codecs/ip/cd_esp_module.h @@ -32,6 +32,7 @@ class EspModule : public DecodeModule public: EspModule(); + const RuleMap* get_rules() const; bool set(const char*, Value&, SnortConfig*); }; diff --git a/src/codecs/ip/cd_gre_module.cc b/src/codecs/ip/cd_gre_module.cc index 42a48150a..611f65842 100644 --- a/src/codecs/ip/cd_gre_module.cc +++ b/src/codecs/ip/cd_gre_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/ip/cd_gre_module.h b/src/codecs/ip/cd_gre_module.h index 2e0ce889f..0bc0e0f6b 100644 --- a/src/codecs/ip/cd_gre_module.h +++ b/src/codecs/ip/cd_gre_module.h @@ -32,7 +32,7 @@ class GreModule : public DecodeModule public: GreModule(); - bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/ip/cd_icmp4_module.cc b/src/codecs/ip/cd_icmp4_module.cc index f65b5e677..25340d5ad 100644 --- a/src/codecs/ip/cd_icmp4_module.cc +++ b/src/codecs/ip/cd_icmp4_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/ip/cd_icmp4_module.h b/src/codecs/ip/cd_icmp4_module.h index 6eb73cd8a..ec2261196 100644 --- a/src/codecs/ip/cd_icmp4_module.h +++ b/src/codecs/ip/cd_icmp4_module.h @@ -32,7 +32,7 @@ class Icmp4Module : public DecodeModule public: Icmp4Module(); - bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/ip/cd_icmp6_module.cc b/src/codecs/ip/cd_icmp6_module.cc index 7387d95e3..691c08bbf 100644 --- a/src/codecs/ip/cd_icmp6_module.cc +++ b/src/codecs/ip/cd_icmp6_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/ip/cd_icmp6_module.h b/src/codecs/ip/cd_icmp6_module.h index d514765af..031c329db 100644 --- a/src/codecs/ip/cd_icmp6_module.h +++ b/src/codecs/ip/cd_icmp6_module.h @@ -32,7 +32,7 @@ class Icmp6Module : public DecodeModule public: Icmp6Module(); - bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/ip/cd_igmp_module.cc b/src/codecs/ip/cd_igmp_module.cc index 508bae55a..0720a709f 100644 --- a/src/codecs/ip/cd_igmp_module.cc +++ b/src/codecs/ip/cd_igmp_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/ip/cd_igmp_module.h b/src/codecs/ip/cd_igmp_module.h index b4902b7e5..d158ae0aa 100644 --- a/src/codecs/ip/cd_igmp_module.h +++ b/src/codecs/ip/cd_igmp_module.h @@ -32,7 +32,7 @@ class IgmpModule : public DecodeModule public: IgmpModule(); - bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/ip/cd_ipv4_module.cc b/src/codecs/ip/cd_ipv4_module.cc index 1ab2352dc..da0c0c926 100644 --- a/src/codecs/ip/cd_ipv4_module.cc +++ b/src/codecs/ip/cd_ipv4_module.cc @@ -21,13 +21,6 @@ #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; } diff --git a/src/codecs/ip/cd_ipv4_module.h b/src/codecs/ip/cd_ipv4_module.h index 861795aa1..f0d4ed539 100644 --- a/src/codecs/ip/cd_ipv4_module.h +++ b/src/codecs/ip/cd_ipv4_module.h @@ -32,7 +32,7 @@ class Ipv4Module : public DecodeModule public: Ipv4Module(); - bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/ip/cd_ipv6_module.cc b/src/codecs/ip/cd_ipv6_module.cc index b5ac35f5f..ba54e8b7e 100644 --- a/src/codecs/ip/cd_ipv6_module.cc +++ b/src/codecs/ip/cd_ipv6_module.cc @@ -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; } + diff --git a/src/codecs/ip/cd_ipv6_module.h b/src/codecs/ip/cd_ipv6_module.h index ef23eaf08..cbb5ff6ef 100644 --- a/src/codecs/ip/cd_ipv6_module.h +++ b/src/codecs/ip/cd_ipv6_module.h @@ -32,8 +32,7 @@ class Ipv6Module : public DecodeModule public: Ipv6Module(); - bool set(const char*, Value&, SnortConfig*); - + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/ip/cd_pgm_module.cc b/src/codecs/ip/cd_pgm_module.cc index 71b9ed721..dd37c564b 100644 --- a/src/codecs/ip/cd_pgm_module.cc +++ b/src/codecs/ip/cd_pgm_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/ip/cd_pgm_module.h b/src/codecs/ip/cd_pgm_module.h index 8795c2d15..aba62cfac 100644 --- a/src/codecs/ip/cd_pgm_module.h +++ b/src/codecs/ip/cd_pgm_module.h @@ -32,7 +32,7 @@ class PgmModule : public DecodeModule public: PgmModule(); - bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/ip/cd_tcp_module.cc b/src/codecs/ip/cd_tcp_module.cc index a2ae4c434..a811d6308 100644 --- a/src/codecs/ip/cd_tcp_module.cc +++ b/src/codecs/ip/cd_tcp_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/ip/cd_tcp_module.h b/src/codecs/ip/cd_tcp_module.h index 49b9b83a6..87955cd35 100644 --- a/src/codecs/ip/cd_tcp_module.h +++ b/src/codecs/ip/cd_tcp_module.h @@ -32,8 +32,7 @@ class TcpModule : public DecodeModule public: TcpModule(); - bool set(const char*, Value&, SnortConfig*); - + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/ip/cd_udp_module.cc b/src/codecs/ip/cd_udp_module.cc index 53a03a252..c392cd174 100644 --- a/src/codecs/ip/cd_udp_module.cc +++ b/src/codecs/ip/cd_udp_module.cc @@ -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") ) diff --git a/src/codecs/ip/cd_udp_module.h b/src/codecs/ip/cd_udp_module.h index 7b1117545..73fc43a88 100644 --- a/src/codecs/ip/cd_udp_module.h +++ b/src/codecs/ip/cd_udp_module.h @@ -32,8 +32,8 @@ class UdpModule : public DecodeModule public: UdpModule(); + const RuleMap* get_rules() const; bool set(const char*, Value&, SnortConfig*); - }; #endif diff --git a/src/codecs/link/cd_arp_module.cc b/src/codecs/link/cd_arp_module.cc index d9daa6313..2505084c1 100644 --- a/src/codecs/link/cd_arp_module.cc +++ b/src/codecs/link/cd_arp_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/link/cd_arp_module.h b/src/codecs/link/cd_arp_module.h index 4f1098d20..2fb01da6e 100644 --- a/src/codecs/link/cd_arp_module.h +++ b/src/codecs/link/cd_arp_module.h @@ -32,7 +32,7 @@ class ArpModule : public DecodeModule public: ArpModule(); - bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/link/cd_eapol_module.cc b/src/codecs/link/cd_eapol_module.cc index 3678b3647..831918c8f 100644 --- a/src/codecs/link/cd_eapol_module.cc +++ b/src/codecs/link/cd_eapol_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/link/cd_eapol_module.h b/src/codecs/link/cd_eapol_module.h index cbbbc5acb..40c3819da 100644 --- a/src/codecs/link/cd_eapol_module.h +++ b/src/codecs/link/cd_eapol_module.h @@ -32,6 +32,7 @@ class EapolModule : public DecodeModule public: EapolModule(); + const RuleMap* get_rules() const; bool set(const char*, Value&, SnortConfig*); }; diff --git a/src/codecs/link/cd_erspan2_module.cc b/src/codecs/link/cd_erspan2_module.cc index 24e404079..dd23c1c6d 100644 --- a/src/codecs/link/cd_erspan2_module.cc +++ b/src/codecs/link/cd_erspan2_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/link/cd_erspan2_module.h b/src/codecs/link/cd_erspan2_module.h index ec4acf4bd..cf76e2cf7 100644 --- a/src/codecs/link/cd_erspan2_module.h +++ b/src/codecs/link/cd_erspan2_module.h @@ -32,7 +32,7 @@ class Erspan2Module : public DecodeModule public: Erspan2Module(); - bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/link/cd_erspan3_module.cc b/src/codecs/link/cd_erspan3_module.cc index 25fd028bd..bf48f22e1 100644 --- a/src/codecs/link/cd_erspan3_module.cc +++ b/src/codecs/link/cd_erspan3_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/link/cd_erspan3_module.h b/src/codecs/link/cd_erspan3_module.h index f578b9f57..5b1d86270 100644 --- a/src/codecs/link/cd_erspan3_module.h +++ b/src/codecs/link/cd_erspan3_module.h @@ -32,7 +32,7 @@ class Erspan3Module : public DecodeModule public: Erspan3Module(); - bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/link/cd_mpls_module.cc b/src/codecs/link/cd_mpls_module.cc index e2eee6f71..a02354cf3 100644 --- a/src/codecs/link/cd_mpls_module.cc +++ b/src/codecs/link/cd_mpls_module.cc @@ -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") ) diff --git a/src/codecs/link/cd_mpls_module.h b/src/codecs/link/cd_mpls_module.h index 8ec811b7e..15ef5d5a3 100644 --- a/src/codecs/link/cd_mpls_module.h +++ b/src/codecs/link/cd_mpls_module.h @@ -32,8 +32,8 @@ class MplsModule : public DecodeModule public: MplsModule(); + const RuleMap* get_rules() const; bool set(const char*, Value&, SnortConfig*); - }; #endif diff --git a/src/codecs/link/cd_pppoe_module.cc b/src/codecs/link/cd_pppoe_module.cc index ebed2cd04..fbf6420b2 100644 --- a/src/codecs/link/cd_pppoe_module.cc +++ b/src/codecs/link/cd_pppoe_module.cc @@ -17,18 +17,11 @@ ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -// cd_pppoepkt_module.cc author Josh Rosenbaum +// cd_pppoe_module.cc author Josh Rosenbaum #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; } + diff --git a/src/codecs/link/cd_pppoe_module.h b/src/codecs/link/cd_pppoe_module.h index 5f40ffd85..3bcb00ba1 100644 --- a/src/codecs/link/cd_pppoe_module.h +++ b/src/codecs/link/cd_pppoe_module.h @@ -41,7 +41,7 @@ class PPPoEModule : public DecodeModule public: PPPoEModule(); - bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/link/cd_vlan_module.cc b/src/codecs/link/cd_vlan_module.cc index 4a5076f4b..05202f47a 100644 --- a/src/codecs/link/cd_vlan_module.cc +++ b/src/codecs/link/cd_vlan_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/link/cd_vlan_module.h b/src/codecs/link/cd_vlan_module.h index 2f2e75c16..6770fe477 100644 --- a/src/codecs/link/cd_vlan_module.h +++ b/src/codecs/link/cd_vlan_module.h @@ -32,7 +32,7 @@ class VlanModule : public DecodeModule public: VlanModule(); - bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/misc/cd_gtp_module.cc b/src/codecs/misc/cd_gtp_module.cc index 34966224f..a4d475bf1 100644 --- a/src/codecs/misc/cd_gtp_module.cc +++ b/src/codecs/misc/cd_gtp_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/misc/cd_gtp_module.h b/src/codecs/misc/cd_gtp_module.h index add09ebe7..d3a1f42b6 100644 --- a/src/codecs/misc/cd_gtp_module.h +++ b/src/codecs/misc/cd_gtp_module.h @@ -32,7 +32,7 @@ class GtpModule : public DecodeModule public: GtpModule(); - bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/root/cd_eth_module.cc b/src/codecs/root/cd_eth_module.cc index 9b0e001ae..8351529c1 100644 --- a/src/codecs/root/cd_eth_module.cc +++ b/src/codecs/root/cd_eth_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/root/cd_eth_module.h b/src/codecs/root/cd_eth_module.h index 15f0e10eb..ed40284d7 100644 --- a/src/codecs/root/cd_eth_module.h +++ b/src/codecs/root/cd_eth_module.h @@ -32,7 +32,7 @@ class EthModule : public DecodeModule public: EthModule(); - bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; }; #endif diff --git a/src/codecs/root/cd_wlan_module.cc b/src/codecs/root/cd_wlan_module.cc index 6d9cd0a71..ed9fa3fad 100644 --- a/src/codecs/root/cd_wlan_module.cc +++ b/src/codecs/root/cd_wlan_module.cc @@ -21,13 +21,6 @@ #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; } + diff --git a/src/codecs/root/cd_wlan_module.h b/src/codecs/root/cd_wlan_module.h index 554707b2c..25a4e8043 100644 --- a/src/codecs/root/cd_wlan_module.h +++ b/src/codecs/root/cd_wlan_module.h @@ -32,6 +32,7 @@ class WlanCodecModule : public DecodeModule public: WlanCodecModule(); + const RuleMap* get_rules() const; bool set(const char*, Value&, SnortConfig*); }; diff --git a/src/framework/CMakeLists.txt b/src/framework/CMakeLists.txt index 5ea8a8149..985f17e1f 100644 --- a/src/framework/CMakeLists.txt +++ b/src/framework/CMakeLists.txt @@ -23,6 +23,7 @@ add_library ( framework STATIC inspector.cc ips_option.cc parameter.cc + module.cc mpse.cc value.cc ) diff --git a/src/framework/Makefile.am b/src/framework/Makefile.am index ee5871a60..df9278f07 100644 --- a/src/framework/Makefile.am +++ b/src/framework/Makefile.am @@ -25,6 +25,7 @@ cursor.cc \ inspector.cc \ ips_option.cc \ parameter.cc \ +module.cc \ mpse.cc \ value.cc diff --git a/src/framework/module.h b/src/framework/module.h index b31ab3916..796948937 100644 --- a/src/framework/module.h +++ b/src/framework/module.h @@ -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; diff --git a/src/main/modules.cc b/src/main/modules.cc index d640170f4..86e440150 100644 --- a/src/main/modules.cc +++ b/src/main/modules.cc @@ -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; }; }; diff --git a/src/network_inspectors/arp_spoof/arp_module.cc b/src/network_inspectors/arp_spoof/arp_module.cc index 2391d4c56..8a7fbc0a5 100644 --- a/src/network_inspectors/arp_spoof/arp_module.cc +++ b/src/network_inspectors/arp_spoof/arp_module.cc @@ -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; } diff --git a/src/network_inspectors/arp_spoof/arp_module.h b/src/network_inspectors/arp_spoof/arp_module.h index 1c803decd..6f5545175 100644 --- a/src/network_inspectors/arp_spoof/arp_module.h +++ b/src/network_inspectors/arp_spoof/arp_module.h @@ -74,6 +74,7 @@ public: unsigned get_gid() const { return GID_ARP_SPOOF; }; + const RuleMap* get_rules() const; ProfileStats* get_profile() const; private: diff --git a/src/network_inspectors/port_scan/ps_module.cc b/src/network_inspectors/port_scan/ps_module.cc index 8cc6ee585..9598139a4 100644 --- a/src/network_inspectors/port_scan/ps_module.cc +++ b/src/network_inspectors/port_scan/ps_module.cc @@ -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 diff --git a/src/network_inspectors/port_scan/ps_module.h b/src/network_inspectors/port_scan/ps_module.h index 21dda6cca..5397bb119 100644 --- a/src/network_inspectors/port_scan/ps_module.h +++ b/src/network_inspectors/port_scan/ps_module.h @@ -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; }; diff --git a/src/service_inspectors/back_orifice/back_orifice.cc b/src/service_inspectors/back_orifice/back_orifice.cc index 28762a451..ec8509faa 100644 --- a/src/service_inspectors/back_orifice/back_orifice.cc +++ b/src/service_inspectors/back_orifice/back_orifice.cc @@ -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; }; diff --git a/src/service_inspectors/ftp_telnet/ftp_module.cc b/src/service_inspectors/ftp_telnet/ftp_module.cc index 1abc50b3b..13c91fb58 100644 --- a/src/service_inspectors/ftp_telnet/ftp_module.cc +++ b/src/service_inspectors/ftp_telnet/ftp_module.cc @@ -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; } diff --git a/src/service_inspectors/ftp_telnet/ftp_module.h b/src/service_inspectors/ftp_telnet/ftp_module.h index ca5db7870..ad5887151 100644 --- a/src/service_inspectors/ftp_telnet/ftp_module.h +++ b/src/service_inspectors/ftp_telnet/ftp_module.h @@ -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(); diff --git a/src/service_inspectors/ftp_telnet/telnet_module.cc b/src/service_inspectors/ftp_telnet/telnet_module.cc index 8a81170cd..5e570bce9 100644 --- a/src/service_inspectors/ftp_telnet/telnet_module.cc +++ b/src/service_inspectors/ftp_telnet/telnet_module.cc @@ -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; } diff --git a/src/service_inspectors/ftp_telnet/telnet_module.h b/src/service_inspectors/ftp_telnet/telnet_module.h index fc0b61f9f..0f74e21e3 100644 --- a/src/service_inspectors/ftp_telnet/telnet_module.h +++ b/src/service_inspectors/ftp_telnet/telnet_module.h @@ -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(); diff --git a/src/service_inspectors/http_inspect/hi_module.cc b/src/service_inspectors/http_inspect/hi_module.cc index ca7de36b3..0bb946eac 100644 --- a/src/service_inspectors/http_inspect/hi_module.cc +++ b/src/service_inspectors/http_inspect/hi_module.cc @@ -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; diff --git a/src/service_inspectors/http_inspect/hi_module.h b/src/service_inspectors/http_inspect/hi_module.h index b10f37852..951c5b256 100644 --- a/src/service_inspectors/http_inspect/hi_module.h +++ b/src/service_inspectors/http_inspect/hi_module.h @@ -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; }; diff --git a/src/service_inspectors/nhttp_inspect/nhttp_module.cc b/src/service_inspectors/nhttp_inspect/nhttp_module.cc index 73b5670e1..c51234f48 100644 --- a/src/service_inspectors/nhttp_inspect/nhttp_module.cc +++ b/src/service_inspectors/nhttp_inspect/nhttp_module.cc @@ -33,8 +33,11 @@ #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" }, diff --git a/src/service_inspectors/nhttp_inspect/nhttp_module.h b/src/service_inspectors/nhttp_inspect/nhttp_module.h index dd7f124a5..2f996c87e 100644 --- a/src/service_inspectors/nhttp_inspect/nhttp_module.h +++ b/src/service_inspectors/nhttp_inspect/nhttp_module.h @@ -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; }; diff --git a/src/service_inspectors/rpc_decode/rpc_module.cc b/src/service_inspectors/rpc_decode/rpc_module.cc index 146aeeb8a..9431a96f2 100644 --- a/src/service_inspectors/rpc_decode/rpc_module.cc +++ b/src/service_inspectors/rpc_decode/rpc_module.cc @@ -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; } diff --git a/src/service_inspectors/rpc_decode/rpc_module.h b/src/service_inspectors/rpc_decode/rpc_module.h index f6ab32818..f2ead7748 100644 --- a/src/service_inspectors/rpc_decode/rpc_module.h +++ b/src/service_inspectors/rpc_decode/rpc_module.h @@ -47,6 +47,7 @@ public: unsigned get_gid() const { return GID_RPC_DECODE; }; + const RuleMap* get_rules() const; ProfileStats* get_profile() const; }; diff --git a/src/stream/base/stream_module.cc b/src/stream/base/stream_module.cc index 881d343f8..f0c8012c5 100644 --- a/src/stream/base/stream_module.cc +++ b/src/stream/base/stream_module.cc @@ -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; } diff --git a/src/stream/icmp/icmp_module.cc b/src/stream/icmp/icmp_module.cc index 71019b711..d8569fe2a 100644 --- a/src/stream/icmp/icmp_module.cc +++ b/src/stream/icmp/icmp_module.cc @@ -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; } diff --git a/src/stream/ip/ip_module.cc b/src/stream/ip/ip_module.cc index af67da5a2..b132eb7a0 100644 --- a/src/stream/ip/ip_module.cc +++ b/src/stream/ip/ip_module.cc @@ -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 { diff --git a/src/stream/ip/ip_module.h b/src/stream/ip/ip_module.h index 33a847da1..b0aec0339 100644 --- a/src/stream/ip/ip_module.h +++ b/src/stream/ip/ip_module.h @@ -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(); diff --git a/src/stream/tcp/tcp_module.cc b/src/stream/tcp/tcp_module.cc index 2af94a83a..e7cb1a3b7 100644 --- a/src/stream/tcp/tcp_module.cc +++ b/src/stream/tcp/tcp_module.cc @@ -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 { diff --git a/src/stream/tcp/tcp_module.h b/src/stream/tcp/tcp_module.h index 1edaa8874..047928832 100644 --- a/src/stream/tcp/tcp_module.h +++ b/src/stream/tcp/tcp_module.h @@ -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; }; diff --git a/src/stream/udp/udp_module.cc b/src/stream/udp/udp_module.cc index 75e24aafa..34a85f0fd 100644 --- a/src/stream/udp/udp_module.cc +++ b/src/stream/udp/udp_module.cc @@ -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; } diff --git a/src/time/ppm_module.cc b/src/time/ppm_module.cc index ff620fba0..b4e7bec08 100644 --- a/src/time/ppm_module.cc +++ b/src/time/ppm_module.cc @@ -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) { diff --git a/src/time/ppm_module.h b/src/time/ppm_module.h index 363b4d77f..92148b73a 100644 --- a/src/time/ppm_module.h +++ b/src/time/ppm_module.h @@ -41,6 +41,8 @@ public: PpmModule(); bool set(const char*, Value&, SnortConfig*); + const RuleMap* get_rules() const; + unsigned get_gid() const { return GID_PPM; }; }; diff --git a/src/utils/stats.h b/src/utils/stats.h index 69aa6f6c8..5c31f2b06 100644 --- a/src/utils/stats.h +++ b/src/utils/stats.h @@ -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);