in apache2/re_actions.c [2291:2982]
void msre_engine_register_default_actions(msre_engine *engine) {
/* id */
msre_engine_action_register(engine,
"id",
ACTION_METADATA,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
msre_action_id_validate,
msre_action_id_init,
NULL
);
/* marker */
msre_engine_action_register(engine,
"marker",
ACTION_METADATA,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
msre_action_marker_init,
NULL
);
/* rev */
msre_engine_action_register(engine,
"rev",
ACTION_METADATA,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
msre_action_rev_init,
NULL
);
/* msg */
msre_engine_action_register(engine,
"msg",
ACTION_METADATA,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
msre_action_msg_init,
NULL
);
/* logdata */
msre_engine_action_register(engine,
"logdata",
ACTION_METADATA,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
msre_action_logdata_init,
NULL
);
/* accuracy */
msre_engine_action_register(engine,
"accuracy",
ACTION_METADATA,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
msre_action_accuracy_init,
NULL
);
/* maturity */
msre_engine_action_register(engine,
"maturity",
ACTION_METADATA,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
msre_action_maturity_init,
NULL
);
/* ver */
msre_engine_action_register(engine,
"ver",
ACTION_METADATA,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
msre_action_ver_init,
NULL
);
/* severity */
msre_engine_action_register(engine,
"severity",
ACTION_METADATA,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
msre_action_severity_init,
NULL
);
/* chain */
msre_engine_action_register(engine,
"chain",
ACTION_FLOW,
0, 0,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
msre_action_chain_init,
NULL
);
/* log */
msre_engine_action_register(engine,
"log",
ACTION_NON_DISRUPTIVE,
0, 0,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_LOG,
NULL,
msre_action_log_init,
NULL
);
/* nolog */
msre_engine_action_register(engine,
"nolog",
ACTION_NON_DISRUPTIVE,
0, 0,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_LOG,
NULL,
msre_action_nolog_init,
NULL
);
/* auditlog */
msre_engine_action_register(engine,
"auditlog",
ACTION_NON_DISRUPTIVE,
0, 0,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_AUDITLOG,
NULL,
msre_action_auditlog_init,
NULL
);
/* noauditlog */
msre_engine_action_register(engine,
"noauditlog",
ACTION_NON_DISRUPTIVE,
0, 0,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_AUDITLOG,
NULL,
msre_action_noauditlog_init,
NULL
);
/* block */
msre_engine_action_register(engine,
"block",
ACTION_DISRUPTIVE,
0, 0,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_DISRUPTIVE,
NULL,
msre_action_block_init,
NULL
);
/* deny */
msre_engine_action_register(engine,
"deny",
ACTION_DISRUPTIVE,
0, 0,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_DISRUPTIVE,
NULL,
msre_action_deny_init,
NULL
);
/* status */
msre_engine_action_register(engine,
"status",
ACTION_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
msre_action_status_validate,
msre_action_status_init,
NULL
);
/* drop */
msre_engine_action_register(engine,
"drop",
ACTION_DISRUPTIVE,
0, 0,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_DISRUPTIVE,
NULL,
msre_action_drop_init,
NULL
);
/* pause */
msre_engine_action_register(engine,
"pause",
ACTION_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
msre_action_pause_validate,
msre_action_pause_init,
NULL
);
/* redirect */
msre_engine_action_register(engine,
"redirect",
ACTION_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_DISRUPTIVE,
msre_action_redirect_validate,
msre_action_redirect_init,
msre_action_redirect_execute
);
/* proxy */
msre_engine_action_register(engine,
"proxy",
ACTION_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_DISRUPTIVE,
msre_action_proxy_validate,
msre_action_proxy_init,
msre_action_proxy_execute
);
/* pass */
msre_engine_action_register(engine,
"pass",
ACTION_DISRUPTIVE,
0, 0,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_DISRUPTIVE,
NULL,
msre_action_pass_init,
NULL
);
/* skip */
msre_engine_action_register(engine,
"skip",
ACTION_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_DISRUPTIVE,
msre_action_skip_validate,
msre_action_skip_init,
NULL
);
/* skipAfter */
msre_engine_action_register(engine,
"skipAfter",
ACTION_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_DISRUPTIVE,
msre_action_skipAfter_validate,
msre_action_skipAfter_init,
NULL
);
/* allow */
msre_engine_action_register(engine,
"allow",
ACTION_DISRUPTIVE,
0, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_DISRUPTIVE,
msre_action_allow_validate,
msre_action_allow_init,
NULL
);
/* phase */
/* ENH: This should be ACTION_NON_DISRUPTIVE or ACTION_FLOW??? */
msre_engine_action_register(engine,
"phase",
ACTION_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
msre_action_phase_validate,
msre_action_phase_init,
NULL
);
/* t */
msre_engine_action_register(engine,
"t",
ACTION_NON_DISRUPTIVE,
1, 1,
ALLOW_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
msre_action_t_validate,
msre_action_t_init,
NULL
);
/* ctl */
msre_engine_action_register(engine,
"ctl",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
msre_action_ctl_validate,
msre_action_ctl_init,
msre_action_ctl_execute
);
/* xmlns */
msre_engine_action_register(engine,
"xmlns",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
msre_action_xmlns_validate,
NULL,
NULL
);
/* capture */
msre_engine_action_register(engine,
"capture",
ACTION_NON_DISRUPTIVE,
0, 0,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
NULL,
NULL
);
/* sanitiseArg */
msre_engine_action_register(engine,
"sanitiseArg",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_sanitizeArg_execute
);
/* sanitiseMatchedBytes */
msre_engine_action_register(engine,
"sanitiseMatchedBytes",
ACTION_NON_DISRUPTIVE,
0, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
msre_action_sanitizeMatchedBytes_init,
msre_action_sanitizeMatched_execute
);
/* sanitizeMatchedBytes */
msre_engine_action_register(engine,
"sanitizeMatchedBytes",
ACTION_NON_DISRUPTIVE,
0, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
msre_action_sanitizeMatchedBytes_init,
msre_action_sanitizeMatched_execute
);
/* sanitizeArg */
msre_engine_action_register(engine,
"sanitizeArg",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_sanitizeArg_execute
);
/* sanitiseMatched */
msre_engine_action_register(engine,
"sanitiseMatched",
ACTION_NON_DISRUPTIVE,
0, 0,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_sanitizeMatched_execute
);
/* sanitizeMatched */
msre_engine_action_register(engine,
"sanitizeMatched",
ACTION_NON_DISRUPTIVE,
0, 0,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_sanitizeMatched_execute
);
/* sanitiseRequestHeader */
msre_engine_action_register(engine,
"sanitiseRequestHeader",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_sanitizeRequestHeader_execute
);
/* sanitizeRequestHeader */
msre_engine_action_register(engine,
"sanitizeRequestHeader",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_sanitizeRequestHeader_execute
);
/* sanitiseResponseHeader */
msre_engine_action_register(engine,
"sanitiseResponseHeader",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_sanitizeResponseHeader_execute
);
/* sanitizeResponseHeader */
msre_engine_action_register(engine,
"sanitizeResponseHeader",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_sanitizeResponseHeader_execute
);
/* setenv */
msre_engine_action_register(engine,
"setenv",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_setenv_execute
);
/* setvar */
msre_engine_action_register(engine,
"setvar",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_setvar_parse
);
/* expirevar */
msre_engine_action_register(engine,
"expirevar",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_expirevar_execute
);
/* deprecatevar */
msre_engine_action_register(engine,
"deprecatevar",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_deprecatevar_execute
);
/* initcol */
msre_engine_action_register(engine,
"initcol",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_initcol_execute
);
/* setsid */
msre_engine_action_register(engine,
"setsid",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_setsid_execute
);
/* setuid */
msre_engine_action_register(engine,
"setrsc",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_setrsc_execute
);
/* setuid */
msre_engine_action_register(engine,
"setuid",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_setuid_execute
);
/* exec */
msre_engine_action_register(engine,
"exec",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
msre_action_exec_validate,
NULL,
msre_action_exec_execute
);
/* multiMatch */
msre_engine_action_register(engine,
"multiMatch",
ACTION_NON_DISRUPTIVE,
0, 0,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
NULL,
NULL
);
/* tag */
msre_engine_action_register(engine,
"tag",
ACTION_METADATA,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_MANY,
ACTION_CGROUP_NONE,
NULL,
NULL,
NULL
);
/* prepend */
msre_engine_action_register(engine,
"prepend",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_prepend_execute
);
/* append */
msre_engine_action_register(engine,
"append",
ACTION_NON_DISRUPTIVE,
1, 1,
NO_PLUS_MINUS,
ACTION_CARDINALITY_ONE,
ACTION_CGROUP_NONE,
NULL,
NULL,
msre_action_append_execute
);
}