summaryrefslogtreecommitdiff
path: root/include/ap_expr.h
diff options
context:
space:
mode:
authorStefan Fritsch <sf@apache.org>2010-11-28 16:35:14 +0000
committerStefan Fritsch <sf@apache.org>2010-11-28 16:35:14 +0000
commite27a3c21e32ec39dea1bd77944c81bf1d0a5a860 (patch)
tree5a47c6bb1b0f38306938b924ab281229b6276689 /include/ap_expr.h
parent40a73293597c6daa1f84c267a1ce5c23638436f5 (diff)
downloadhttpd-e27a3c21e32ec39dea1bd77944c81bf1d0a5a860.tar.gz
- 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 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1039900 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'include/ap_expr.h')
-rw-r--r--include/ap_expr.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/include/ap_expr.h b/include/ap_expr.h
index dbfff1302e..a23d9ba133 100644
--- a/include/ap_expr.h
+++ b/include/ap_expr.h
@@ -53,9 +53,7 @@ typedef struct {
* operators)
*/
#define AP_EXPR_FLAGS_SSL_EXPR_COMPAT 1
-/** If using the simple ap_expr_exec(), don't add siginificant request headers
- * to the Vary response header
- */
+/** Don't add siginificant request headers to the Vary response header */
#define AP_EXPR_FLAGS_DONT_VARY 2
@@ -126,6 +124,8 @@ typedef struct {
*
* During parsing, the parser calls the lookup function to resolve a
* name into a function pointer and an opaque context for the function.
+ * If the argument to a function or operator is constant, the lookup function
+ * may also parse that argument and store the parsed data in the context.
*
* The default lookup function is the hook 'ap_expr_lookup_default' which just
* calls ap_expr_lookup_default. Modules can use it to make functions and
@@ -204,8 +204,12 @@ typedef struct {
const void **func;
/** where to store the function's context */
const void **data;
- /** Where to store the error message (if any) */
+ /** where to store the error message (if any) */
const char **err;
+
+ /** arg for pre-parsing (only if a simple string).
+ * For binary ops, this is the right argument. */
+ const char *arg;
} ap_expr_lookup_parms;
/** Function for looking up the provider function for a variable, operator