diff --git a/apache2/mod_security2.c b/apache2/mod_security2.c index 9e29d6b9..a62d5d48 100644 --- a/apache2/mod_security2.c +++ b/apache2/mod_security2.c @@ -301,6 +301,13 @@ int perform_interception(modsec_rec *msr) { msr->allow_scope = ACTION_ALLOW; break; + case ACTION_PAUSE : + status = DECLINED; + message = apr_psprintf(msr->mp, "Paused Access%s.", phase_text); + msr->was_intercepted = 0; + msr->allow_scope = ACTION_ALLOW; + break; + case ACTION_ALLOW_PHASE : status = DECLINED; message = apr_psprintf(msr->mp, "Access to phase allowed%s.", phase_text); diff --git a/apache2/modsecurity.h b/apache2/modsecurity.h index 593773ab..41be1fae 100644 --- a/apache2/modsecurity.h +++ b/apache2/modsecurity.h @@ -176,6 +176,7 @@ extern DSOLOCAL int *unicode_map_table; #define ACTION_ALLOW 5 #define ACTION_ALLOW_REQUEST 6 #define ACTION_ALLOW_PHASE 7 +#define ACTION_ALLOW_PHASE 8 #define MODSEC_DISABLED 0 #define MODSEC_DETECTION_ONLY 1 diff --git a/apache2/re_actions.c b/apache2/re_actions.c index 9b4fe324..eceb8226 100644 --- a/apache2/re_actions.c +++ b/apache2/re_actions.c @@ -586,6 +586,7 @@ static char *msre_action_pause_validate(msre_engine *engine, msre_action *action static apr_status_t msre_action_pause_init(msre_engine *engine, msre_actionset *actionset, msre_action *action) { + actionset->intercept_action = ACTION_PAUSE; actionset->intercept_pause = action->param; return 1; }