History log of /httpd/server/util_expr_eval.c
Revision Date Author Comments Expand
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

/httpd/docs/log-message-tags/next-number /httpd/modules/aaa/mod_access_compat.c /httpd/modules/aaa/mod_allowmethods.c /httpd/modules/aaa/mod_auth_basic.c /httpd/modules/aaa/mod_auth_digest.c /httpd/modules/aaa/mod_auth_form.c /httpd/modules/aaa/mod_authn_anon.c /httpd/modules/aaa/mod_authn_core.c /httpd/modules/aaa/mod_authn_dbd.c /httpd/modules/aaa/mod_authn_dbm.c /httpd/modules/aaa/mod_authn_file.c /httpd/modules/aaa/mod_authn_socache.c /httpd/modules/aaa/mod_authnz_ldap.c /httpd/modules/aaa/mod_authz_core.c /httpd/modules/aaa/mod_authz_dbd.c /httpd/modules/aaa/mod_authz_dbm.c /httpd/modules/aaa/mod_authz_groupfile.c /httpd/modules/aaa/mod_authz_host.c /httpd/modules/aaa/mod_authz_owner.c /httpd/modules/aaa/mod_authz_user.c /httpd/modules/apreq/filter.c /httpd/modules/arch/netware/mod_netware.c /httpd/modules/arch/netware/mod_nw_ssl.c /httpd/modules/arch/unix/mod_privileges.c /httpd/modules/arch/unix/mod_unixd.c /httpd/modules/arch/win32/mod_isapi.c /httpd/modules/arch/win32/mod_win32.c /httpd/modules/cache/cache_storage.c /httpd/modules/cache/cache_util.c /httpd/modules/cache/mod_cache.c /httpd/modules/cache/mod_cache_disk.c /httpd/modules/cache/mod_file_cache.c /httpd/modules/cache/mod_socache_dbm.c /httpd/modules/cache/mod_socache_dc.c /httpd/modules/cache/mod_socache_memcache.c /httpd/modules/cache/mod_socache_shmcb.c /httpd/modules/cluster/mod_heartbeat.c /httpd/modules/cluster/mod_heartmonitor.c /httpd/modules/core/mod_so.c /httpd/modules/core/mod_watchdog.c /httpd/modules/database/mod_dbd.c /httpd/modules/dav/fs/dbm.c /httpd/modules/dav/main/mod_dav.c /httpd/modules/dav/main/util_lock.c /httpd/modules/echo/mod_echo.c /httpd/modules/examples/mod_example_hooks.c /httpd/modules/examples/mod_example_ipc.c /httpd/modules/experimental/mod_noloris.c /httpd/modules/filters/mod_charset_lite.c /httpd/modules/filters/mod_deflate.c /httpd/modules/filters/mod_ext_filter.c /httpd/modules/filters/mod_filter.c /httpd/modules/filters/mod_include.c /httpd/modules/filters/mod_proxy_html.c /httpd/modules/filters/mod_ratelimit.c /httpd/modules/filters/mod_reflector.c /httpd/modules/filters/mod_reqtimeout.c /httpd/modules/filters/mod_request.c /httpd/modules/filters/mod_sed.c /httpd/modules/filters/mod_substitute.c /httpd/modules/filters/mod_xml2enc.c /httpd/modules/generators/mod_asis.c /httpd/modules/generators/mod_autoindex.c /httpd/modules/generators/mod_cgi.c /httpd/modules/generators/mod_cgid.c /httpd/modules/generators/mod_status.c /httpd/modules/generators/mod_suexec.c /httpd/modules/http/byterange_filter.c /httpd/modules/http/http_filters.c /httpd/modules/http/http_protocol.c /httpd/modules/http/http_request.c /httpd/modules/http/mod_mime.c /httpd/modules/ldap/util_ldap.c /httpd/modules/ldap/util_ldap_cache_mgr.c /httpd/modules/loggers/mod_log_config.c /httpd/modules/loggers/mod_log_debug.c /httpd/modules/loggers/mod_log_forensic.c /httpd/modules/lua/lua_config.c /httpd/modules/lua/lua_request.c /httpd/modules/lua/lua_vmprep.c /httpd/modules/lua/mod_lua.c /httpd/modules/mappers/mod_actions.c /httpd/modules/mappers/mod_alias.c /httpd/modules/mappers/mod_imagemap.c /httpd/modules/mappers/mod_negotiation.c /httpd/modules/mappers/mod_rewrite.c /httpd/modules/metadata/mod_cern_meta.c /httpd/modules/metadata/mod_env.c /httpd/modules/metadata/mod_expires.c /httpd/modules/metadata/mod_headers.c /httpd/modules/metadata/mod_ident.c /httpd/modules/metadata/mod_mime_magic.c /httpd/modules/metadata/mod_remoteip.c /httpd/modules/metadata/mod_setenvif.c /httpd/modules/metadata/mod_unique_id.c /httpd/modules/metadata/mod_usertrack.c /httpd/modules/proxy/ajp_header.c /httpd/modules/proxy/ajp_link.c /httpd/modules/proxy/ajp_msg.c /httpd/modules/proxy/ajp_utils.c /httpd/modules/proxy/balancers/mod_lbmethod_bybusyness.c /httpd/modules/proxy/balancers/mod_lbmethod_byrequests.c /httpd/modules/proxy/balancers/mod_lbmethod_bytraffic.c /httpd/modules/proxy/balancers/mod_lbmethod_heartbeat.c /httpd/modules/proxy/examples/mod_lbmethod_rr.c /httpd/modules/proxy/mod_proxy.c /httpd/modules/proxy/mod_proxy_ajp.c /httpd/modules/proxy/mod_proxy_balancer.c /httpd/modules/proxy/mod_proxy_connect.c /httpd/modules/proxy/mod_proxy_express.c /httpd/modules/proxy/mod_proxy_fcgi.c /httpd/modules/proxy/mod_proxy_fdpass.c /httpd/modules/proxy/mod_proxy_ftp.c /httpd/modules/proxy/mod_proxy_http.c /httpd/modules/proxy/mod_proxy_scgi.c /httpd/modules/proxy/mod_serf.c /httpd/modules/proxy/proxy_util.c /httpd/modules/session/mod_session.c /httpd/modules/session/mod_session_crypto.c /httpd/modules/session/mod_session_dbd.c /httpd/modules/ssl/mod_ssl.c /httpd/modules/ssl/ssl_engine_init.c /httpd/modules/ssl/ssl_engine_io.c /httpd/modules/ssl/ssl_engine_kernel.c /httpd/modules/ssl/ssl_engine_log.c /httpd/modules/ssl/ssl_engine_mutex.c /httpd/modules/ssl/ssl_engine_ocsp.c /httpd/modules/ssl/ssl_engine_pphrase.c /httpd/modules/ssl/ssl_engine_rand.c /httpd/modules/ssl/ssl_engine_vars.c /httpd/modules/ssl/ssl_scache.c /httpd/modules/ssl/ssl_util_ocsp.c /httpd/modules/ssl/ssl_util_stapling.c /httpd/modules/test/mod_dialup.c /httpd/modules/test/mod_optional_fn_export.c /httpd/modules/test/mod_optional_hook_import.c /httpd/os/bs2000/os.c /httpd/os/unix/unixd.c config.c core.c core_filters.c listen.c log.c main.c mpm/event/event.c mpm/event/pod.c mpm/mpmt_os2/mpmt_os2.c mpm/mpmt_os2/mpmt_os2_child.c mpm/netware/mpm_netware.c mpm/prefork/prefork.c mpm/simple/simple_api.c mpm/simple/simple_children.c mpm/simple/simple_core.c mpm/simple/simple_io.c mpm/simple/simple_run.c mpm/winnt/child.c mpm/winnt/mpm_winnt.c mpm/winnt/service.c mpm/worker/pod.c mpm/worker/worker.c mpm_common.c mpm_unix.c protocol.c request.c scoreboard.c util.c util_cookies.c util_ebcdic.c util_expr_eval.c util_filter.c util_mutex.c util_xml.c vhost.c
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

/httpd/include/ap_hooks.h /httpd/include/ap_listen.h /httpd/include/ap_mpm.h /httpd/include/apache_noprobes.h /httpd/include/http_connection.h /httpd/include/http_core.h /httpd/include/http_log.h /httpd/include/http_main.h /httpd/include/http_protocol.h /httpd/include/http_request.h /httpd/include/http_vhost.h /httpd/include/httpd.h /httpd/include/mod_core.h /httpd/include/scoreboard.h /httpd/include/util_md5.h /httpd/include/util_script.h /httpd/modules/aaa/mod_authz_core.c /httpd/modules/arch/win32/mod_isapi.h /httpd/modules/cache/cache_hash.h /httpd/modules/dav/main/mod_dav.c /httpd/modules/filters/libsed.h /httpd/modules/filters/mod_reqtimeout.c /httpd/modules/filters/regexp.c /httpd/modules/filters/regexp.h /httpd/modules/filters/sed.h /httpd/modules/filters/sed0.c /httpd/modules/filters/sed1.c /httpd/modules/generators/mod_autoindex.c /httpd/modules/generators/mod_cgi.c /httpd/modules/generators/mod_info.c /httpd/modules/http/http_filters.c /httpd/modules/ldap/util_ldap_cache.h /httpd/modules/lua/lua_apr.c /httpd/modules/lua/lua_vmprep.h /httpd/modules/lua/mod_lua.c /httpd/modules/lua/mod_lua.h /httpd/modules/mappers/mod_rewrite.c /httpd/modules/proxy/mod_proxy_fcgi.c /httpd/modules/proxy/mod_proxy_scgi.c /httpd/modules/proxy/proxy_util.c /httpd/modules/ssl/mod_ssl.c /httpd/modules/ssl/ssl_engine_config.c /httpd/modules/ssl/ssl_engine_ocsp.c /httpd/modules/ssl/ssl_engine_vars.c /httpd/os/unix/os.h /httpd/os/unix/unixd.h core.c request.c scoreboard.c util_expr_eval.c /httpd/support/ab.c
5bfaaf573bacb45c1cf290ce85ecc676587e8a64 1174751 23-Sep-2011 jim

Cleanup effort in prep for GA push: Trim trailing whitespace... no func change

/httpd/modules/aaa/mod_allowmethods.c /httpd/modules/aaa/mod_auth_digest.c /httpd/modules/aaa/mod_authn_socache.c /httpd/modules/aaa/mod_authnz_ldap.c /httpd/modules/aaa/mod_authz_core.c /httpd/modules/aaa/mod_authz_dbd.c /httpd/modules/aaa/mod_authz_dbm.c /httpd/modules/aaa/mod_authz_host.c /httpd/modules/arch/netware/mod_netware.c /httpd/modules/arch/unix/mod_unixd.c /httpd/modules/arch/win32/mod_isapi.c /httpd/modules/cache/mod_socache_dbm.c /httpd/modules/cache/mod_socache_dc.c /httpd/modules/cache/mod_socache_memcache.c /httpd/modules/cache/mod_socache_shmcb.c /httpd/modules/cluster/mod_heartmonitor.c /httpd/modules/core/mod_so.c /httpd/modules/dav/fs/repos.c /httpd/modules/dav/main/mod_dav.c /httpd/modules/dav/main/util.c /httpd/modules/echo/mod_echo.c /httpd/modules/examples/mod_case_filter.c /httpd/modules/examples/mod_example_hooks.c /httpd/modules/examples/mod_example_ipc.c /httpd/modules/experimental/mod_noloris.c /httpd/modules/filters/mod_buffer.c /httpd/modules/filters/mod_charset_lite.c /httpd/modules/filters/mod_data.c /httpd/modules/filters/mod_deflate.c /httpd/modules/filters/mod_filter.c /httpd/modules/filters/mod_include.c /httpd/modules/filters/mod_reqtimeout.c /httpd/modules/filters/mod_sed.c /httpd/modules/filters/mod_substitute.c /httpd/modules/filters/regexp.c /httpd/modules/filters/sed0.c /httpd/modules/filters/sed1.c /httpd/modules/generators/mod_autoindex.c /httpd/modules/generators/mod_cgi.c /httpd/modules/generators/mod_cgid.c /httpd/modules/generators/mod_status.c /httpd/modules/http/byterange_filter.c /httpd/modules/http/http_core.c /httpd/modules/http/http_filters.c /httpd/modules/http/http_protocol.c /httpd/modules/http/http_request.c /httpd/modules/ldap/util_ldap.c /httpd/modules/loggers/mod_log_config.c /httpd/modules/loggers/mod_log_forensic.c /httpd/modules/lua/lua_request.c /httpd/modules/lua/lua_vmprep.c /httpd/modules/lua/mod_lua.c /httpd/modules/mappers/mod_dir.c /httpd/modules/mappers/mod_imagemap.c /httpd/modules/mappers/mod_rewrite.c /httpd/modules/mappers/mod_speling.c /httpd/modules/mappers/mod_userdir.c /httpd/modules/metadata/mod_remoteip.c /httpd/modules/proxy/balancers/mod_lbmethod_bybusyness.c /httpd/modules/proxy/balancers/mod_lbmethod_byrequests.c /httpd/modules/proxy/balancers/mod_lbmethod_heartbeat.c /httpd/modules/proxy/examples/mod_lbmethod_rr.c /httpd/modules/proxy/mod_proxy.c /httpd/modules/proxy/mod_proxy_ajp.c /httpd/modules/proxy/mod_proxy_balancer.c /httpd/modules/proxy/mod_proxy_connect.c /httpd/modules/proxy/mod_proxy_express.c /httpd/modules/proxy/mod_proxy_fcgi.c /httpd/modules/proxy/mod_proxy_fdpass.c /httpd/modules/proxy/mod_proxy_ftp.c /httpd/modules/proxy/mod_proxy_http.c /httpd/modules/proxy/mod_proxy_scgi.c /httpd/modules/proxy/mod_serf.c /httpd/modules/slotmem/mod_slotmem_plain.c /httpd/modules/ssl/ssl_engine_config.c /httpd/modules/ssl/ssl_engine_init.c /httpd/modules/ssl/ssl_engine_io.c /httpd/modules/ssl/ssl_engine_kernel.c /httpd/modules/ssl/ssl_engine_log.c /httpd/modules/ssl/ssl_engine_ocsp.c /httpd/modules/ssl/ssl_engine_pphrase.c /httpd/modules/ssl/ssl_engine_vars.c /httpd/modules/ssl/ssl_scache.c /httpd/modules/ssl/ssl_util.c /httpd/modules/ssl/ssl_util_ocsp.c /httpd/modules/ssl/ssl_util_ssl.c /httpd/modules/ssl/ssl_util_stapling.c /httpd/modules/test/mod_dialup.c config.c log.c main.c mpm/event/event.c mpm/event/fdqueue.c mpm/prefork/prefork.c mpm/simple/simple_children.c mpm/simple/simple_core.c mpm/simple/simple_io.c mpm/simple/simple_run.c mpm/winnt/child.c mpm/winnt/mpm_winnt.c mpm/winnt/nt_eventlog.c mpm/winnt/service.c mpm/worker/worker.c mpm_unix.c protocol.c request.c util.c util_expr_eval.c util_expr_parse.c util_expr_scan.c util_mutex.c util_pcre.c util_script.c vhost.c /httpd/support/ab.c /httpd/support/htcacheclean.c /httpd/support/htpasswd.c /httpd/support/rotatelogs.c /httpd/support/win32/ApacheMonitor.c
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.

/httpd/build/build-modules-c.awk /httpd/include/ap_mmn.h /httpd/include/http_core.h /httpd/modules/cache/mod_cache_disk.c /httpd/modules/echo/mod_echo.c /httpd/modules/experimental/mod_noloris.c /httpd/modules/filters/mod_ext_filter.c /httpd/modules/filters/mod_reqtimeout.c /httpd/modules/generators/mod_cgi.c /httpd/modules/generators/mod_cgid.c /httpd/modules/http/http_core.c /httpd/modules/http/http_etag.c /httpd/modules/http/http_filters.c /httpd/modules/http/http_protocol.c /httpd/modules/proxy/mod_proxy.c /httpd/modules/proxy/mod_proxy_connect.c /httpd/modules/proxy/mod_proxy_fdpass.c /httpd/modules/test/mod_dialup.c /httpd/os/netware/modules.c /httpd/os/win32/modules.c config.c connection.c core.c core_filters.c listen.c log.c mpm/prefork/prefork.c mpm/winnt/child.c mpm_common.c mpm_unix.c protocol.c request.c scoreboard.c util.c util_cookies.c util_debug.c util_ebcdic.c util_expr_eval.c util_filter.c util_mutex.c util_script.c util_xml.c vhost.c
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