5d8763f6778b34c5eb8b735a9393fd18c5470e34 1657685 |
|
05-Feb-2015 |
rjung |
Expression parser: Optimize another concatenation
case by using iteration instead of recursion.
We have a relatively small recursion limit of
about 10 operations. This is a compilation
limit (a define). It can be hit if many expr
vars or function calls are concatenated.
The new optimization is very similar to the
existing one, which optimizes consecutive
concatenations in node2 of the tree. The new
one optimizes consecutive concatenations in
node 1. |
fcaab9adc5780fd33de5176b78a3e229fac4eeef 1647125 |
|
21-Dec-2014 |
covener |
looks like debug left in r1642154 |
c5ddb84603794117165e49e54e97a8a9e12ce0af 1643220 |
|
05-Dec-2014 |
rpluem |
* Correctly indent |
fa7ed98b9dc94c5845cf845aea0a44ecacd290c9 1643145 |
|
05-Dec-2014 |
humbedooh |
ap_expr: Add filemod function for checking file modification times. |
666a3c6003f58a22ad2531d734fc76141e1c01e6 1643094 |
|
03-Dec-2014 |
jkaluza |
* ap_expr: Fix replace() func when length of "from" != length of "to". |
d0223955ace55d49e9d2fcb8c5a5041ff70ac6f7 1642154 |
|
27-Nov-2014 |
jkaluza |
* ap_exr: Add replace(string, from, to) function. |
5fdad1e45612ffb04cb638e5e602dd4c65e56dae 1633528 |
|
22-Oct-2014 |
jailletc36 |
tab vs space |
92942d9ecac5ea25c5cac6c2518fe97a51170c59 1621806 |
|
01-Sep-2014 |
jailletc36 |
Silent some cppcheck warnings. |
11f82445c6e1870f0a5f7c2ac55aea746c7786b3 1611871 |
|
19-Jul-2014 |
jailletc36 |
Do not use deprecated define.
No change in generated code because MODULE_MAGIC_NUMBER is defined as:
#define MODULE_MAGIC_NUMBER MODULE_MAGIC_NUMBER_MAJOR |
fe87e8d78d6b1b13416539a09240a8065bc963b0 1595321 |
|
16-May-2014 |
jailletc36 |
Tweak a AP_DEBUG_ASSERT condition.
Valid index to use 'req_header_var_names' are 0...6 |
f779997c36c7b621cc16963b7b2f1fdaef87c4a7 1589995 |
|
25-Apr-2014 |
minfrin |
Only include the ldap escaping if present within APR. |
8152945ae46857b170cb227e79bb799f4fc7710d 1589986 |
|
25-Apr-2014 |
minfrin |
Add the ldap function to the expression API, allowing LDAP filters and
distinguished names based on expressions to be escaped correctly to
guard against LDAP injection.
Note: this requires at least APR v1.6.0 or above for the apr_escape API. |
cf0b40278786514b011e6914be502727b8646c67 1588448 |
|
18-Apr-2014 |
minfrin |
Move two variable assignments off the fast path. |
8a09d25a39a3060ddf3a66f78db7cbaa9c72333e 1458004 |
|
18-Mar-2013 |
sf |
add md5 function, too |
b89e5d61d3f269f95ff27beb1c387f791a46e3b6 1458003 |
|
18-Mar-2013 |
sf |
simplify code by using ap_bin2hex() |
8dad5d706d7255389ba5317adc80e56bdbf521b9 1457610 |
|
18-Mar-2013 |
minfrin |
Expression parser: use hex encoding for the sha1 hash. |
917febfbdb059fb1de9b6c4c15bab4a59a1564e2 1457520 |
|
17-Mar-2013 |
minfrin |
Remove the comment, this is done. |
27809be0d0a633e83aad57dc79115648928f9626 1457450 |
|
17-Mar-2013 |
minfrin |
Expression parser: Add the ability to apply a SHA1 hash to strings within
the parser. |
fbe2558d939d9d8bcbc8097022272c9b7011b405 1457437 |
|
17-Mar-2013 |
minfrin |
Expression parser: Add the ability to base64 encode and base64 decode
strings within the parser. |
584a85dd4047e38d3ed3a29b6662fcc9d100ae4c 1410755 |
|
17-Nov-2012 |
sf |
Add SERVER_PROTOCOL_VERSION, SERVER_PROTOCOL_VERSION_MAJOR,
SERVER_PROTOCOL_VERSION_MINOR ap_expr variables. |
46e5dfe0899face9346d6711e4f2ba873d526991 1403483 |
|
29-Oct-2012 |
sf |
ap_expr: Add req_novary function that allows HTTP header lookups
without adding the name to the Vary header |
723f28377d133603c20f4986d98992a9c43366ab 1220493 |
|
18-Dec-2011 |
sf |
Various code cleanup to avoid compiler, cppcheck, or clang warnings:
modules/debugging/mod_firehose.c: Make some internal functions static
(to do: logs_cleanup() is unused)
modules/filters/mod_charset_lite.c: Remove dead assignments
modules/filters/mod_include.c: likewise
modules/metadata/mod_usertrack.c: likewise
modules/proxy/mod_proxy_ftp.c: likewise
modules/ssl/ssl_engine_pphrase.c: likewise
modules/proxy/mod_proxy_balancer.c: likewise;
Remove NULL check that can never happen
modules/proxy/proxy_util.c: Axe NULL-check that can never happen and if it
would, it would just mask another bug
os/unix/unixd.c: likewise
modules/http/http_filters.c: Remove sub-condition that is always true
modules/lua/mod_lua.c: Add default cases to switch statements
modules/generators/mod_autoindex.c: Unsigned value can never be < 0
server/util_expr_eval.c: Fix compiler warnings with VC and on OS2 |
c41be3600a58bd39a76d1215abcdbbd8e9b1c356 1214015 |
|
14-Dec-2011 |
minfrin |
Further clarify the naming of the entity that directly connects to us by
calling that entity a client instead of a peer. |
4240daa133bbeddbc3141553879eda4fccfe93fe 1214005 |
|
14-Dec-2011 |
minfrin |
Further clarify the naming of the entity that originates the request by
calling that entity a useragent instead of a client. |
834f6f30f81524936d28cbf63968d837227c75bf 1213567 |
|
13-Dec-2011 |
sf |
Explicitly cast function pointer, to remove 'const'.
Hopefully this makes the NetWare compiler happy. |
bee4173c0a773f5a999a46e42cecfd34477bdab9 1212883 |
|
10-Dec-2011 |
sf |
Fix names of unary operators like '-s' being compared case insensitively.
Improve error message if op or function is not found. Document '-s' operator. |
fbef9f3cdc7d358fc5cfb7609c181e96b9108aba 1210378 |
|
05-Dec-2011 |
sf |
Fix a few compiler warning reported by Steffen:
- some signed/unsigned mismatches
- const for a function does not make sense |
59bdac473e4f8e7b7aa2548947722c278289ed26 1210252 |
|
04-Dec-2011 |
sf |
Add some more log message tags
Remove some log message tags from ap_log_* calls that log lots of
different error messages, in particular the config parsing errors.
Not sure how we should handle those.
ssl_util.c: Downgrade some dynamic locking messages from level DEBUG
to TRACE1-3 |
185aa71728867671e105178b4c66fbc22b65ae26 1209766 |
|
03-Dec-2011 |
sf |
Add lots of unique tags to error log messages |
8269892c0023355f51a3f67be442662aefdc6f92 1206291 |
|
25-Nov-2011 |
minfrin |
Introduce a per connection "peer_ip" and a per request "client_ip" to
distinguish between the raw IP address of the connection and the effective
IP address of the request. |
801ef43749f43f7452049372dbc939674d8468b6 1204998 |
|
22-Nov-2011 |
jim |
Hello. Let's compile again. |
02d573726dc894ff8387a0a6387a6494b01d7217 1204990 |
|
22-Nov-2011 |
minfrin |
Add the ability to access the connection level remote IP address from the
expression parser. |
49fd87ed00b95bdd7a4cfc874e5c5fe4a04faf5a 1204968 |
|
22-Nov-2011 |
minfrin |
Introduce a per request version of the remote IP address, which can be
optionally modified by a module when the effective IP of the client
is not the same as the real IP of the client (such as a load balancer). |
fb86fc9bdceefeb853512314fd3987c4bf3429e9 1204090 |
|
19-Nov-2011 |
sf |
clarify comment
remove broken recursion counting bits |
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 |
d15c6ed1d477fafee22d10c7249bb6372531aed2 1185898 |
|
19-Oct-2011 |
sf |
regex related cleanups:
- use AP_MAX_REG_MATCH where appropriate
- in mod_proxy_ftp, compile the "ls -s1" regex only once instead of once per request
- add some coments |
11e076839c8d5a82d55e710194d0daac51390dbd 1174929 |
|
23-Sep-2011 |
sf |
More cleanup: Expand tabs and some more indentation fixes
No functional change |
5bfaaf573bacb45c1cf290ce85ecc676587e8a64 1174751 |
|
23-Sep-2011 |
jim |
Cleanup effort in prep for GA push:
Trim trailing whitespace... no func change |
da5fa15bb2ac6327c1770d5ba4f02e8a67f3f655 1157362 |
|
13-Aug-2011 |
sf |
Do proper length checks in the expression scanner. This allows to remove the
8K length limit for expressions. Strings/Regexs in an expression are still
limited to 8K, though. |
6bcf7c3f56e61e81f94de9cac552d93c6c75b167 1151373 |
|
27-Jul-2011 |
sf |
Use ap_unescape_url_keep2f() in ap_expr unescape func. ap_unescape_url()
forbidding encoded slashes is not useful here.
Log failures.
Improve docs. |
3e520e9f095fbbcaa3c216c8ea56e89bd6fd58b4 1147614 |
|
17-Jul-2011 |
sf |
Make the SERVER_NAME variable include [ ] for literal IPv6 addresses, as
mandated by RFC 3875
PR: 26005 |
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 |
3263ab7e3bea29024a09381627be0b00b78cefb5 1142163 |
|
02-Jul-2011 |
sf |
Add REQUEST_STATUS variable to ap_expr |
2c3a18efdb0536acb42f25758b66bb85a67a9131 1138617 |
|
22-Jun-2011 |
sf |
We already have ap_str_tolower(), so also add ap_str_toupper() function and use
it where possible. |
7184de27ec1d62a83c41cdeac0953ca9fd661e8c 1132781 |
|
06-Jun-2011 |
sf |
Introduce ap_(get|set)_core_module_config() functions/macros and use them
everywhere.
We know that the core module has module_index 0. Therefore we can save
some pointer operations in ap_get_module_config(cv, &core_module) and
ap_set_module_config(cv, &core_module, val). As these are called rather often,
this may actually have some (small) measurable effect. |
33510984c759eb3da154ceb0db9b75fa0031d3b4 1132494 |
|
05-Jun-2011 |
sf |
- Introduce concept of context prefix (which is an URL prefix)
and context document root (which is the file system directory that
this URL prefix is mapped to). This generalization of the document
root makes it easier for scripts to create self-referential URLs and
to find their files.
- Expose CONTEXT_DOCUMENT_ROOT and CONTEXT_PREFIX as envvars, in mod_rewrite,
and in ap_expr.
- Make mod_alias and mod_userdir set the context information.
- Allow to override the document root on a per-request basis. This allows
mass vhosting modules to set DOCUMENT_ROOT correctly.
- Make mod_vhost_alias set the per-request document root
PR: 26052, 46198, 49705
Remaining tasks:
- Use the context document root & prefix in mod_rewrite to make RewriteBase
unneccessary in many cases. Do this without breaking compatibility.
- Write docs. |
1826938866ce29c4d6f7c21b0946c6b144f85621 1132467 |
|
05-Jun-2011 |
sf |
Fix wrong condition that may lead to NULL being set as 'Vary' header |
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 |
6a4df5de56a363712391aa26cc8f536b0c6e8166 1103126 |
|
14-May-2011 |
sf |
Also add the -U and -F operators for doing subrequest lookups to ap_expr. |
6f88aef8511bf8ccf170bec41b82b6346c8b1ac7 1103097 |
|
14-May-2011 |
sf |
Add various file existance test operators to ap_expr |
653b9203880c6400d68fc696717eca3ec283fbc4 1090234 |
|
08-Apr-2011 |
jorton |
* server/util_expr_eval.c (req_table_func): Try r->err_headers_out for
response headers if given header is not found in r->headers_out
(e.g. as with non-standard headers from CGI scripts). |
7dffdb75ed6be39c05d25cc5f60334a9b73be7ac 1053882 |
|
30-Dec-2010 |
sf |
Add mod_rewrite's SCRIPT_USER/SCRIPT_GROUP vars to ap_expr |
5214884a6acb0d2136a291a711da593555cdabe6 1053865 |
|
30-Dec-2010 |
sf |
Add -T operator to allow easy evaluation of on/off, 1/0, ... variables |
d3a41d91bee95143da8f8aac59c9a7223968ab6b 1044679 |
|
11-Dec-2010 |
sf |
indentation + coding style fixes |
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. |
290092aa38442eee2c9ff07518e4f2fc36ed9bfa 1037605 |
|
22-Nov-2010 |
fuankg |
Fix for picky compilers. |
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 |
185cf7dea1af4e4f6e9b6fb07993dc80f8c7cb5b 1037325 |
|
20-Nov-2010 |
sf |
Don't compile expr_dump_tree() by default |
422d015ecf036321202db0b280bb08e94fea3d5d 1037321 |
|
20-Nov-2010 |
sf |
Check input lenght to avoid potential overflows |
4ac6228134b7f8fad48357fe60022ee42d7919aa 1037140 |
|
20-Nov-2010 |
sf |
Log errors/infos during expression evaluation and associate the message
with the module that is calling ap_expr_exec() |
347d46d99d72a56e140490e84d14440433f42ac2 1033167 |
|
09-Nov-2010 |
sf |
support error log id as variables |
d62c1ae6241dba0587f88b2ea9b300afd32e41c2 1032413 |
|
07-Nov-2010 |
sf |
Support %{HANDLER} in ap_expr (required for mod_filter)
Update mod_filter docs |
4244974f4d0995fffe2cf1b32cddd1ec9c7031bb 1032408 |
|
07-Nov-2010 |
sf |
Implement "reqenv", "note", "-z", "-n" in ap_expr.
Make "env" ssl_expr compatible |
90e8b8bbcff6be7652820ad76e65f3e5a50a48e4 1032393 |
|
07-Nov-2010 |
sf |
Port "file" function from ssl_expr |
d3019eff1c7471997b41a45900bc87ea02a93a4e 1032268 |
|
07-Nov-2010 |
sf |
More fixes for picky compilers |
fe0285d6806f556f94fc9f8118ec3298862237b2 1032170 |
|
06-Nov-2010 |
sf |
Implement "HTTPS" and "IPV6" vars in ap_expr |
a400161a259d6d9fd47a47fd9a4bb413fd85e3bc 1032163 |
|
06-Nov-2010 |
sf |
Netware build fixes
Submitted by: NormW <normw gknw net> |
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 |