mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-14 13:56:01 +03:00
Add DURATION.
This commit is contained in:
parent
51e7bfcc03
commit
d259373331
5
CHANGES
5
CHANGES
@ -1,7 +1,10 @@
|
|||||||
|
|
||||||
26 Jan 2010 - trunk
|
27 Jan 2010 - trunk
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
* Added DURATION, which contains the time ellapsed since the beginning
|
||||||
|
of the current transaction, in milliseconds. [Ivan Ristic]
|
||||||
|
|
||||||
* Adjusted phase 5 to execute just prior to mod_log_config. This should
|
* Adjusted phase 5 to execute just prior to mod_log_config. This should
|
||||||
allow phase 5 rules to to implement conditional logging, as well as
|
allow phase 5 rules to to implement conditional logging, as well as
|
||||||
pave support for allowing access to all ModSecurity variables from
|
pave support for allowing access to all ModSecurity variables from
|
||||||
|
@ -1426,6 +1426,23 @@ static int var_urlencoded_error_generate(modsec_rec *msr, msre_var *var, msre_ru
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* DURATION */
|
||||||
|
|
||||||
|
static int var_duration_generate(modsec_rec *msr, msre_var *var, msre_rule *rule,
|
||||||
|
apr_table_t *vartab, apr_pool_t *mptmp)
|
||||||
|
{
|
||||||
|
msre_var *rvar = NULL;
|
||||||
|
|
||||||
|
rvar = apr_pmemdup(mptmp, var, sizeof(msre_var));
|
||||||
|
rvar->value = apr_psprintf(mptmp, "%" APR_TIME_T_FMT,
|
||||||
|
(apr_time_msec(apr_time_now() - msr->r->request_time)));
|
||||||
|
rvar->value_len = strlen(rvar->value);
|
||||||
|
|
||||||
|
apr_table_addn(vartab, rvar->name, (void *)rvar);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* TIME */
|
/* TIME */
|
||||||
|
|
||||||
static int var_time_generate(modsec_rec *msr, msre_var *var, msre_rule *rule,
|
static int var_time_generate(modsec_rec *msr, msre_var *var, msre_rule *rule,
|
||||||
@ -3017,6 +3034,17 @@ void msre_engine_register_default_variables(msre_engine *engine) {
|
|||||||
VAR_DONT_CACHE, /* dynamic */
|
VAR_DONT_CACHE, /* dynamic */
|
||||||
PHASE_RESPONSE_HEADERS
|
PHASE_RESPONSE_HEADERS
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/* DURATION */
|
||||||
|
msre_engine_variable_register(engine,
|
||||||
|
"DURATION",
|
||||||
|
VAR_SIMPLE,
|
||||||
|
0, 0,
|
||||||
|
NULL,
|
||||||
|
var_duration_generate,
|
||||||
|
VAR_DONT_CACHE, /* dynamic */
|
||||||
|
PHASE_REQUEST_HEADERS
|
||||||
|
);
|
||||||
|
|
||||||
/* TIME */
|
/* TIME */
|
||||||
msre_engine_variable_register(engine,
|
msre_engine_variable_register(engine,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user