diff options
| author | Stefan Fritsch <sf@apache.org> | 2010-11-28 16:35:14 +0000 |
|---|---|---|
| committer | Stefan Fritsch <sf@apache.org> | 2010-11-28 16:35:14 +0000 |
| commit | e27a3c21e32ec39dea1bd77944c81bf1d0a5a860 (patch) | |
| tree | 5a47c6bb1b0f38306938b924ab281229b6276689 /include/ap_expr.h | |
| parent | 40a73293597c6daa1f84c267a1ce5c23638436f5 (diff) | |
| download | httpd-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.h | 12 |
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 |
