History log of /httpd/include/ap_expr.h
Revision Date Author Comments Expand
d0223955ace55d49e9d2fcb8c5a5041ff70ac6f7 1642154 27-Nov-2014 jkaluza

* ap_exr: Add replace(string, from, to) function.

ad5d19b28d732aa51af79b53dea8ac2d9d363915 1476530 27-Apr-2013 sf

fix comment

bf6b5eb3bf3c4a71e6146d4bcd07cf1749dc6d70 1211364 07-Dec-2011 jorton

* include/: Various doxy markup tweaks.

8ed293f91e7c2b9866ff024b20c09f7a62b1f640 1204087 19-Nov-2011 sf

Limit recursion in ap_expr evaluation to avoid unbounded stack usage * evaluate chains of ||, &&, and string concatenation non-recursively * limit other types of recursion to 20 levels * avoid some string copies if concatenating more than 2 strings

d95a7ac0fe7a06495c3aab5d684b4174f9ab282c 1142164 02-Jul-2011 sf

Add string valued expressions to ap_expr, do some API cleanup - add possibility to have expressions that evaluate to a string and not to a boolean value - modify ap_expr_parse_cmd() interface to support this and make it more convenient to use in general - rename AP_EXPR_FLAGS_* to AP_EXPR_FLAG_* for consistency

c1ea0100af157a0d4e4a3de323f32dbfac4e5b6e 1128564 28-May-2011 sf

Add some features to ap_expr for use by mod_include: * a restricted mode that does not allow to bypass request access restrictions * new variables DOCUMENT_URI (alias for REQUEST_URI), LAST_MODIFIED * -A as an alias for -U * an additional data entry in ap_expr_eval_ctx_t for use by the consumer * an extensible ap_expr_exec_ctx() API that allows to use that data entry

79792868b7929def4fa73129c9e7bd575b957b56 1086341 28-Mar-2011 wrowe

Wrap at 80

9160d077717b8137af4fc2f53bd1a5af09c552e5 1044680 11-Dec-2010 sf

doxygen improvements

3bd0e50248c06f4a61404a93f9e1acc7f26c8464 1043710 08-Dec-2010 sf

Fix some doxygen warnings

68dfc95acc4fde241e0124dd29cdda973bd6ec2c 1042146 04-Dec-2010 sf

Rename ap_expr's typedef names: ap_expr -> ap_expr_t ap_expr_parse_ctx -> ap_expr_parse_ctx_t ap_expr_eval_ctx -> ap_expr_eval_ctx_t ap_expr_lookup_fn -> ap_expr_lookup_fn_t ap_expr_node_op -> ap_expr_node_op_e

6b3904b27e9d68c753cdd1fbab9b375eec50fb88 1039900 28-Nov-2010 sf

- add -ipmatch, -str(c)match, -fnmatch, -R operators to ap_expr - allow lookup function to pre-parse string constant arguments (used for subnet masks so far) - various bug fixes for binary operators - do strdup() for error messages created on the stack to avoid corruption

1db21ec42c3640e3e0445f4f3ed3e66158d9582c 1039528 26-Nov-2010 sf

Fix another Windows build issue: Add a wrapper around ap_run_expr_lookup with the correct calling convention.

144806982c1764b6bdd45caab786fcd620e9f3b5 1037540 21-Nov-2010 sf

More ap_expr updates: - minor bump for ap_expr_exec_re() introduced in r1037504 - actually commit the changes to allow using backreferences in SetEnvIfExpr - automatically add the correct entries to the Vary-header if the result of an expression evaluation depends on a request header (can be turned off by setting the AP_EXPR_FLAGS_DONT_VARY flag) - set AP_EXPR_FLAGS_DONT_VARY in mod_log_config's conditional logging - fix various off-by-one errors in req_table_func

8bc0214116f2225966cf4a806dc183f18e7c3803 1037504 21-Nov-2010 sf

ap_expr related fixes/enhancements: - implement regex backreferences and make them available for setting envvars in SetEnvIfExpr - implement nested function calls in %-syntax: %{func1:%{func2:arg}} - actually implement evaluation of concatenation operator (oops...) - Fix <If ... > treating an internal error as success

8fae12696bce44be9ce4c56888690cad8ac7b8f9 1032073 06-Nov-2010 sf

Replace ap_expr with a parser derived from mod_ssl's parser. Make mod_ssl use the new parser. Rework ap_expr's public interface and provide hooks for modules to add variables and functions. The Netware and Windows build files still need to be adjusted

/httpd/CHANGES /httpd/buildconf ap_expr.h ap_mmn.h http_core.h /httpd/modules/aaa/mod_authz_core.c /httpd/modules/filters/mod_filter.c /httpd/modules/metadata/mod_headers.c /httpd/modules/ssl/Makefile.in /httpd/modules/ssl/config.m4 /httpd/modules/ssl/mod_ssl.c /httpd/modules/ssl/ssl_engine_config.c /httpd/modules/ssl/ssl_engine_kernel.c /httpd/modules/ssl/ssl_engine_vars.c /httpd/modules/ssl/ssl_expr.c /httpd/modules/ssl/ssl_expr.h /httpd/modules/ssl/ssl_expr_eval.c /httpd/modules/ssl/ssl_expr_parse.y /httpd/modules/ssl/ssl_expr_scan.l /httpd/modules/ssl/ssl_private.h /httpd/server/Makefile.in /httpd/server/core.c /httpd/server/main.c /httpd/server/request.c /httpd/server/util_expr.c /httpd/server/util_expr_eval.c /httpd/server/util_expr_parse.c /httpd/server/util_expr_parse.h /httpd/server/util_expr_parse.y /httpd/server/util_expr_private.h /httpd/server/util_expr_scan.c /httpd/server/util_expr_scan.l
e61ab274672157e823ce68d1b77d86eade1d3dc9 1002415 29-Sep-2010 niq

Add "IN" operator to expression parser, to evaluate membership of a list of tokens. Couldn't resist after sf's comment on r1002363! This means expressions like <If %{REQUEST_METHOD} IN GET,HEAD,OPTIONS,...> will work as a drop-in substitute for <Limit> Also fix off-by-one bug in variable evaluation

feaca656b298a47325760932c0fbc74600550bcd 1002363 28-Sep-2010 sf

This is just too easy to not do it: Add an 'expr' authz provider that allows arbitrary expressions in Require lines. The main issue I wanted to fix was that the env provider only allows to check for the existance of an envvar but not the contents.

8884052e8e3dd8f921e1755844cc1e334eeb4308 795445 19-Jul-2009 niq

Fix mod_include potential segfault checking backref from unmatched regexp http://markmail.org/message/jlc7t5edsjujbe37 Patch by rpluem, lars, niq

24c9d692a9689d4bd19ad881f0de6fd276255768 664173 07-Jun-2008 wrowe

Declare the callback function NONSTD

a6eaa6baf8454755ff828a1772e6523672943718 643175 01-Apr-2008 niq

Remove ap_expr_clone from the API (same day it was added:-)

a69ee2f93830df6b1270cb9b66ec1a03f6b43640 642971 31-Mar-2008 niq

Flesh out ap_expr with: * Re-usable parse trees * Canonical string parser function (candidate)

ef6b674389a0fa7791594af79f08283eeeb6dfe0 642631 29-Mar-2008 rpluem

* Add some doxygen stub / stuff

caeb59b3f5cdaa3eb600a21a1e11470916b5f9ff 642630 29-Mar-2008 rpluem

* Prevent multiple "execution" of ap_expr.h contents when included multiple times and allow it to be included by C++ files.

f7b130bcb90e84db7538e7ec521d1084963c6671 642629 29-Mar-2008 rpluem

* For AP_MAX_REG_MATCH we need to ensure that httpd.h is there, otherwise we fail to compile exports.c

6c8ca96c03ec294d9f4bddb3cbea14bafda37df9 642596 29-Mar-2008 niq

Thou shalt not let tabs creep in.

78a20a6e7ad3a0229900ee54c7d11a65f647b663 642558 29-Mar-2008 niq

Introduce ap_expr expression parser API