Rename TX_SEVERITY to HIGHEST_SEVERITY, fix and document.

This commit is contained in:
brectanus
2007-08-09 14:32:02 +00:00
parent b71687c7f7
commit 9cfdd8f0d2
5 changed files with 43 additions and 24 deletions

View File

@@ -299,7 +299,7 @@ apr_status_t modsecurity_tx_init(modsec_rec *msr) {
msr->tcache = apr_hash_make(msr->mp);
if (msr->tcache == NULL) return -1;
msr->tx_severity = 7; /* lowest */
msr->highest_severity = 255; /* high, invalid value */
return 1;
}

View File

@@ -320,7 +320,7 @@ struct modsec_rec {
apr_time_t time_checkpoint_3;
const char *matched_var;
int tx_severity;
int highest_severity;
/* upload */
int upload_extract_files;

View File

@@ -1254,8 +1254,9 @@ static int execute_operator(msre_var *var, msre_rule *rule, modsec_rec *msr,
msr->matched_var = apr_pstrdup(msr->mp, var->name);
/* Keep track of the highest severity matched so far */
if (acting_actionset->severity < msr->tx_severity) {
msr->tx_severity = acting_actionset->severity;
if ((acting_actionset->severity > 0) && (acting_actionset->severity < msr->highest_severity))
{
msr->highest_severity = acting_actionset->severity;
}

View File

@@ -734,14 +734,6 @@ static int var_tx_generate(modsec_rec *msr, msre_var *var, msre_rule *rule,
return count;
}
/* TX_SEVERITY */
static int var_tx_severity_generate(modsec_rec *msr, msre_var *var, msre_rule *rule,
apr_table_t *vartab, apr_pool_t *mptmp)
{
return var_simple_generate(var, vartab, mptmp, apr_psprintf(mptmp, "%i", msr->tx_severity));
}
/* GEO */
static int var_geo_generate(modsec_rec *msr, msre_var *var, msre_rule *rule,
@@ -786,6 +778,15 @@ static int var_geo_generate(modsec_rec *msr, msre_var *var, msre_rule *rule,
return count;
}
/* HIGHEST_SEVERITY */
static int var_highest_severity_generate(modsec_rec *msr, msre_var *var, msre_rule *rule,
apr_table_t *vartab, apr_pool_t *mptmp)
{
return var_simple_generate(var, vartab, mptmp,
apr_psprintf(mptmp, "%d", msr->highest_severity));
}
/* IP */
static int var_ip_generate(modsec_rec *msr, msre_var *var, msre_rule *rule,
@@ -2203,6 +2204,17 @@ void msre_engine_register_default_variables(msre_engine *engine) {
PHASE_REQUEST_HEADERS
);
/* HIGHEST_SEVERITY */
msre_engine_variable_register(engine,
"HIGHEST_SEVERITY",
VAR_SIMPLE,
0, 0,
NULL,
var_highest_severity_generate,
VAR_DONT_CACHE,
PHASE_REQUEST_HEADERS
);
/* IP */
msre_engine_variable_register(engine,
"IP",
@@ -2896,17 +2908,6 @@ void msre_engine_register_default_variables(msre_engine *engine) {
PHASE_REQUEST_HEADERS
);
/* TX_SEVERITY */
msre_engine_variable_register(engine,
"TX_SEVERITY",
VAR_SIMPLE,
0, 0,
NULL,
var_tx_severity_generate,
VAR_DONT_CACHE,
PHASE_REQUEST_HEADERS
);
/* WEBAPPID */
msre_engine_variable_register(engine,
"WEBAPPID",