public:
AppIdIpsOption(const AppIdRuleOptionData& c) :
IpsOption(s_name)
- { opt_data = c; }
+ {
+ opt_data = c;
+ }
+
+ ~AppIdIpsOption()
+ {
+ for (auto& appid_info : opt_data.appid_table)
+ snort_free( appid_info.appid_name);
+ }
uint32_t hash() const override;
bool operator==(const IpsOption&) const override;
tok.erase(0, 1);
if ( tok[tok.length()-1] == '"' )
- tok.erase(tok.length()-1, 1);
+ tok.erase(tok.length() - 1, 1);
appid_info.appid_name = snort_strdup(tok.c_str());
appid_info.appid_ordinal = 0;
namespace rules
{
extern const ConvertMap* ack_map;
+extern const ConvertMap* appid_map;
extern const ConvertMap* asn1_map;
extern const ConvertMap* base64_data_map;
extern const ConvertMap* base64_decode_map;
const std::vector<const ConvertMap*> rule_options_api =
{
ack_map,
+ appid_map,
asn1_map,
base64_data_map,
base64_decode_map,
* x,y,z to "x y z"
*/
-template<const std::string* rule_name>
+template<const std::string* converted_option_name>
class CommaListRuleOption : public ConversionState
{
public:
}
val.insert(0,1,'"');
val.insert(val.end(),1,'"');
+ rule_api.add_option(*converted_option_name, val);
- rule_api.add_option(*rule_name, val);
return set_next_rule_state(stream);
}
};
-template<const std::string* rule_name>
+template<const std::string* converted_option_name>
static ConversionState* comma_list_conversion_ctor(Converter& c)
{
- return new CommaListRuleOption<rule_name>(c);
+ return new CommaListRuleOption<converted_option_name>(c);
}
/************************************
static const ConvertMap dnp3_ind_api =
{
dnp3_ind,
- comma_list_conversion_ctor<& dnp3_ind>,
+ comma_list_conversion_ctor<&dnp3_ind>,
};
const ConvertMap* dnp3_ind_map = &dnp3_ind_api;
static const ConvertMap dce_opnum_api =
{
dce_opnum,
- comma_list_conversion_ctor<& dce_opnum>,
+ comma_list_conversion_ctor<&dce_opnum>,
};
const ConvertMap* dce_opnum_map = &dce_opnum_api;
+/************************************
+ ********* APPID **************
+ ************************************/
+static const std::string appid = "appid";
+static const std::string appids = "appids";
+static const ConvertMap appid_api =
+{
+ appid,
+ comma_list_conversion_ctor<&appids>,
+};
+
+const ConvertMap* appid_map = &appid_api;
+
} // namespace rules