Apache HTTPD
Classes | Macros | Typedefs | Functions | Variables
util_expr_eval.c File Reference
#include "httpd.h"
#include "http_log.h"
#include "http_core.h"
#include "http_protocol.h"
#include "http_request.h"
#include "http_ssl.h"
#include "ap_provider.h"
#include "util_expr_private.h"
#include "util_md5.h"
#include "apr_lib.h"
#include "apr_fnmatch.h"
#include "apr_base64.h"
#include "apr_sha1.h"
#include "apr_version.h"
#include "apr_escape.h"
#include <limits.h>

Go to the source code of this file.

Classes

struct  expr_provider_single
 
struct  expr_provider_multi
 

Macros

#define APLOG_MODULE_INDEX   AP_CORE_MODULE_INDEX
 
#define LOG_MARK(info)   __FILE__, __LINE__, (info)->module_index
 
#define AP_EXPR_MAX_RECURSION   20
 
#define MAX_FILE_SIZE   10*1024*1024
 

Typedefs

typedef int() apr_OFN_http2_is_h2_t(conn_rec *)
 

Functions

void ap_hook_expr_lookup (ap_HOOK_expr_lookup_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
 
apr_array_header_tap_hook_get_expr_lookup (void)
 
int ap_run_expr_lookup (ap_expr_lookup_parms *parms)
 
static const charap_expr_eval_string_func (ap_expr_eval_ctx_t *ctx, const ap_expr_t *info, const ap_expr_t *args)
 
static const charap_expr_eval_re_backref (ap_expr_eval_ctx_t *ctx, unsigned int n)
 
static const charap_expr_eval_var (ap_expr_eval_ctx_t *ctx, ap_expr_var_func_t *func, const void *data)
 
static int inc_rec (ap_expr_eval_ctx_t *ctx)
 
static const charap_expr_eval_word (ap_expr_eval_ctx_t *ctx, const ap_expr_t *node)
 
static int intstrcmp (const char *s1, const char *s2)
 
static int ap_expr_eval_comp (ap_expr_eval_ctx_t *ctx, const ap_expr_t *node)
 
static int strcmplex (const char *str1, const char *str2)
 
static int ssl_expr_eval_comp (ap_expr_eval_ctx_t *ctx, const ap_expr_t *node)
 
int ap_expr_lookup_default (ap_expr_lookup_parms *parms)
 
const charap_expr_parse (apr_pool_t *pool, apr_pool_t *ptemp, ap_expr_info_t *info, const char *expr, ap_expr_lookup_fn_t *lookup_fn)
 
ap_expr_info_tap_expr_parse_cmd_mi (const cmd_parms *cmd, const char *expr, unsigned int flags, const char **err, ap_expr_lookup_fn_t *lookup_fn, int module_index)
 
ap_expr_tap_expr_make (ap_expr_node_op_e op, const void *a1, const void *a2, ap_expr_parse_ctx_t *ctx)
 
static ap_expr_tap_expr_info_make (int type, const char *name, ap_expr_parse_ctx_t *ctx, const ap_expr_t *arg)
 
ap_expr_tap_expr_str_func_make (const char *name, const ap_expr_t *arg, ap_expr_parse_ctx_t *ctx)
 
ap_expr_tap_expr_list_func_make (const char *name, const ap_expr_t *arg, ap_expr_parse_ctx_t *ctx)
 
ap_expr_tap_expr_unary_op_make (const char *name, const ap_expr_t *arg, ap_expr_parse_ctx_t *ctx)
 
ap_expr_tap_expr_binary_op_make (const char *name, const ap_expr_t *arg1, const ap_expr_t *arg2, ap_expr_parse_ctx_t *ctx)
 
ap_expr_tap_expr_var_make (const char *name, ap_expr_parse_ctx_t *ctx)
 
static int ap_expr_eval_unary_op (ap_expr_eval_ctx_t *ctx, const ap_expr_t *info, const ap_expr_t *arg)
 
static int ap_expr_eval_binary_op (ap_expr_eval_ctx_t *ctx, const ap_expr_t *info, const ap_expr_t *args)
 
static int ap_expr_eval (ap_expr_eval_ctx_t *ctx, const ap_expr_t *node)
 
int ap_expr_exec (request_rec *r, const ap_expr_info_t *info, const char **err)
 
int ap_expr_exec_ctx (ap_expr_eval_ctx_t *ctx)
 
int ap_expr_exec_re (request_rec *r, const ap_expr_info_t *info, apr_size_t nmatch, ap_regmatch_t *pmatch, const char **source, const char **err)
 
const charap_expr_str_exec_re (request_rec *r, const ap_expr_info_t *info, apr_size_t nmatch, ap_regmatch_t *pmatch, const char **source, const char **err)
 
const charap_expr_str_exec (request_rec *r, const ap_expr_info_t *info, const char **err)
 
static void add_vary (ap_expr_eval_ctx_t *ctx, const char *name)
 
static const charreq_table_func (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static const charenv_func (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static const charosenv_func (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static const chartolower_func (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static const chartoupper_func (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static const charescape_func (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static const charbase64_func (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static const charunbase64_func (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static const charsha1_func (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static const charmd5_func (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static const charldap_func (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static const charfile_func (ap_expr_eval_ctx_t *ctx, const void *data, char *arg)
 
static const charfilesize_func (ap_expr_eval_ctx_t *ctx, const void *data, char *arg)
 
static const charunescape_func (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static int op_nz (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static int op_file_min (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static int op_file_link (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static int op_file_xbit (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static int op_url_subr (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static int op_file_subr (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static const charconn_var_fn (ap_expr_eval_ctx_t *ctx, const void *data)
 
static const charrequest_var_fn (ap_expr_eval_ctx_t *ctx, const void *data)
 
static const charreq_header_var_fn (ap_expr_eval_ctx_t *ctx, const void *data)
 
static const charmisc_var_fn (ap_expr_eval_ctx_t *ctx, const void *data)
 
static int subnet_parse_arg (ap_expr_lookup_parms *parms)
 
static int op_ipmatch (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg1, const char *arg2)
 
static int op_R (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg1)
 
static int op_T (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
 
static int op_fnmatch (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg1, const char *arg2)
 
static int op_strmatch (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg1, const char *arg2)
 
static int op_strcmatch (ap_expr_eval_ctx_t *ctx, const void *data, const char *arg1, const char *arg2)
 
static int core_expr_lookup (ap_expr_lookup_parms *parms)
 
static int expr_lookup_not_found (ap_expr_lookup_parms *parms)
 
static int ap_expr_post_config (apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
 
void ap_expr_init (apr_pool_t *p)
 

Variables

struct { 
 
   apr_array_header_t *   link_expr_lookup 
 
_hooks 
 
static apr_OFN_http2_is_h2_tis_http2 = NULL
 
static const char *const conn_var_names []
 
static const char *const request_var_names []
 
static const char *const req_header_var_names []
 
static const char *const req_header_header_names []
 
static const char *const misc_var_names []
 
static const struct expr_provider_multi var_providers []
 
static const struct expr_provider_single string_func_providers []
 
static const struct expr_provider_single unary_op_providers []
 
static const struct expr_provider_single binary_op_providers []
 

Macro Definition Documentation

◆ AP_EXPR_MAX_RECURSION

#define AP_EXPR_MAX_RECURSION   20

Definition at line 75 of file util_expr_eval.c.

◆ APLOG_MODULE_INDEX

#define APLOG_MODULE_INDEX   AP_CORE_MODULE_INDEX

Definition at line 44 of file util_expr_eval.c.

◆ LOG_MARK

#define LOG_MARK (   info)    __FILE__, __LINE__, (info)->module_index

Definition at line 53 of file util_expr_eval.c.

◆ MAX_FILE_SIZE

#define MAX_FILE_SIZE   10*1024*1024

Definition at line 1105 of file util_expr_eval.c.

Typedef Documentation

◆ apr_OFN_http2_is_h2_t

typedef int() apr_OFN_http2_is_h2_t(conn_rec *)

Definition at line 1271 of file util_expr_eval.c.

Function Documentation

◆ add_vary()

static void add_vary ( ap_expr_eval_ctx_t ctx,
const char name 
)
static

Definition at line 971 of file util_expr_eval.c.

◆ ap_expr_binary_op_make()

ap_expr_t * ap_expr_binary_op_make ( const char name,
const ap_expr_t arg1,
const ap_expr_t arg2,
ap_expr_parse_ctx_t ctx 
)

Definition at line 511 of file util_expr_eval.c.

◆ ap_expr_eval()

static int ap_expr_eval ( ap_expr_eval_ctx_t ctx,
const ap_expr_t node 
)
static

Definition at line 736 of file util_expr_eval.c.

◆ ap_expr_eval_binary_op()

static int ap_expr_eval_binary_op ( ap_expr_eval_ctx_t ctx,
const ap_expr_t info,
const ap_expr_t args 
)
static

Definition at line 718 of file util_expr_eval.c.

◆ ap_expr_eval_comp()

static int ap_expr_eval_comp ( ap_expr_eval_ctx_t ctx,
const ap_expr_t node 
)
static

Definition at line 234 of file util_expr_eval.c.

◆ ap_expr_eval_re_backref()

static const char * ap_expr_eval_re_backref ( ap_expr_eval_ctx_t ctx,
unsigned int  n 
)
static

Definition at line 193 of file util_expr_eval.c.

◆ ap_expr_eval_string_func()

static const char * ap_expr_eval_string_func ( ap_expr_eval_ctx_t ctx,
const ap_expr_t info,
const ap_expr_t args 
)
static

Definition at line 208 of file util_expr_eval.c.

◆ ap_expr_eval_unary_op()

static int ap_expr_eval_unary_op ( ap_expr_eval_ctx_t ctx,
const ap_expr_t info,
const ap_expr_t arg 
)
static

Definition at line 706 of file util_expr_eval.c.

◆ ap_expr_eval_var()

static const char * ap_expr_eval_var ( ap_expr_eval_ctx_t ctx,
ap_expr_var_func_t func,
const void *  data 
)
static

Definition at line 184 of file util_expr_eval.c.

◆ ap_expr_eval_word()

static const char * ap_expr_eval_word ( ap_expr_eval_ctx_t ctx,
const ap_expr_t node 
)
static

Definition at line 88 of file util_expr_eval.c.

◆ ap_expr_info_make()

static ap_expr_t * ap_expr_info_make ( int  type,
const char name,
ap_expr_parse_ctx_t ctx,
const ap_expr_t arg 
)
static

< Module has handled this stage.

Definition at line 458 of file util_expr_eval.c.

◆ ap_expr_list_func_make()

ap_expr_t * ap_expr_list_func_make ( const char name,
const ap_expr_t arg,
ap_expr_parse_ctx_t ctx 
)

Definition at line 489 of file util_expr_eval.c.

◆ ap_expr_make()

ap_expr_t * ap_expr_make ( ap_expr_node_op_e  op,
const void *  a1,
const void *  a2,
ap_expr_parse_ctx_t ctx 
)

Definition at line 448 of file util_expr_eval.c.

◆ ap_expr_post_config()

static int ap_expr_post_config ( apr_pool_t pconf,
apr_pool_t plog,
apr_pool_t ptemp,
server_rec s 
)
static

< Module has handled this stage.

Definition at line 1818 of file util_expr_eval.c.

◆ ap_expr_str_func_make()

ap_expr_t * ap_expr_str_func_make ( const char name,
const ap_expr_t arg,
ap_expr_parse_ctx_t ctx 
)

Definition at line 478 of file util_expr_eval.c.

◆ ap_expr_unary_op_make()

ap_expr_t * ap_expr_unary_op_make ( const char name,
const ap_expr_t arg,
ap_expr_parse_ctx_t ctx 
)

Definition at line 500 of file util_expr_eval.c.

◆ ap_expr_var_make()

ap_expr_t * ap_expr_var_make ( const char name,
ap_expr_parse_ctx_t ctx 
)

Definition at line 526 of file util_expr_eval.c.

◆ base64_func()

static const char * base64_func ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

Definition at line 1061 of file util_expr_eval.c.

◆ conn_var_fn()

static const char * conn_var_fn ( ap_expr_eval_ctx_t ctx,
const void *  data 
)
static

Definition at line 1283 of file util_expr_eval.c.

◆ core_expr_lookup()

static int core_expr_lookup ( ap_expr_lookup_parms parms)
static

< Module has handled this stage.

< Module has handled this stage.

< Module has handled this stage.

< Module declines to handle

Definition at line 1713 of file util_expr_eval.c.

◆ env_func()

static const char * env_func ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

Definition at line 1019 of file util_expr_eval.c.

◆ escape_func()

static const char * escape_func ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

Definition at line 1055 of file util_expr_eval.c.

◆ expr_lookup_not_found()

static int expr_lookup_not_found ( ap_expr_lookup_parms parms)
static

< Module has handled this stage.

< Module has handled this stage.

Definition at line 1784 of file util_expr_eval.c.

◆ file_func()

static const char * file_func ( ap_expr_eval_ctx_t ctx,
const void *  data,
char arg 
)
static

< Open the file for reading

<

Deprecated:
See also
APR_FOPEN_READ

< Open the file for buffered I/O

<

Deprecated:
See also
APR_FOPEN_BUFFERED

< use OS's default permissions

<

Deprecated:
See also
APR_FPROT_OS_DEFAULT

< Size of the file

Definition at line 1106 of file util_expr_eval.c.

◆ filesize_func()

static const char * filesize_func ( ap_expr_eval_ctx_t ctx,
const void *  data,
char arg 
)
static

< type, mtime, ctime, atime, size

Definition at line 1150 of file util_expr_eval.c.

◆ inc_rec()

static int inc_rec ( ap_expr_eval_ctx_t ctx)
static

Definition at line 76 of file util_expr_eval.c.

◆ intstrcmp()

static int intstrcmp ( const char s1,
const char s2 
)
static

Definition at line 221 of file util_expr_eval.c.

◆ ldap_func()

static const char * ldap_func ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

Definition at line 1098 of file util_expr_eval.c.

◆ md5_func()

static const char * md5_func ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

Definition at line 1091 of file util_expr_eval.c.

◆ misc_var_fn()

static const char * misc_var_fn ( ap_expr_eval_ctx_t ctx,
const void *  data 
)
static

Definition at line 1507 of file util_expr_eval.c.

◆ op_file_link()

static int op_file_link ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

< type, mtime, ctime, atime, size

< Stat the link not the file itself if it is a link

Definition at line 1205 of file util_expr_eval.c.

◆ op_file_min()

static int op_file_min ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

< type, mtime, ctime, atime, size

Definition at line 1184 of file util_expr_eval.c.

◆ op_file_subr()

static int op_file_subr ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

< type, mtime, ctime, atime, size

Definition at line 1249 of file util_expr_eval.c.

◆ op_file_xbit()

static int op_file_xbit ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

< all protections

< Stat the link not the file itself if it is a link

< Execute by user

<

Deprecated:
See also
APR_FPROT_UEXECUTE

< Execute by group

<

Deprecated:
See also
APR_FPROT_GEXECUTE

< Execute by others

<

Deprecated:
See also
APR_FPROT_WEXECUTE

Definition at line 1217 of file util_expr_eval.c.

◆ op_fnmatch()

static int op_fnmatch ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg1,
const char arg2 
)
static

< Slash must be matched by slash.

Definition at line 1623 of file util_expr_eval.c.

◆ op_ipmatch()

static int op_ipmatch ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg1,
const char arg2 
)
static

Definition at line 1575 of file util_expr_eval.c.

◆ op_nz()

static int op_nz ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

Definition at line 1175 of file util_expr_eval.c.

◆ op_R()

static int op_R ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg1 
)
static

Definition at line 1590 of file util_expr_eval.c.

◆ op_strcmatch()

static int op_strcmatch ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg1,
const char arg2 
)
static

< Compare characters case-insensitively.

Definition at line 1635 of file util_expr_eval.c.

◆ op_strmatch()

static int op_strmatch ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg1,
const char arg2 
)
static

Definition at line 1629 of file util_expr_eval.c.

◆ op_T()

static int op_T ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

Definition at line 1602 of file util_expr_eval.c.

◆ op_url_subr()

static int op_url_subr ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

Definition at line 1227 of file util_expr_eval.c.

◆ osenv_func()

static const char * osenv_func ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

Definition at line 1033 of file util_expr_eval.c.

◆ req_header_var_fn()

static const char * req_header_var_fn ( ap_expr_eval_ctx_t ctx,
const void *  data 
)
static

Definition at line 1473 of file util_expr_eval.c.

◆ req_table_func()

static const char * req_table_func ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

Definition at line 985 of file util_expr_eval.c.

◆ request_var_fn()

static const char * request_var_fn ( ap_expr_eval_ctx_t ctx,
const void *  data 
)
static

< User

< User

Definition at line 1358 of file util_expr_eval.c.

◆ sha1_func()

static const char * sha1_func ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

Definition at line 1073 of file util_expr_eval.c.

◆ ssl_expr_eval_comp()

static int ssl_expr_eval_comp ( ap_expr_eval_ctx_t ctx,
const ap_expr_t node 
)
static

Definition at line 346 of file util_expr_eval.c.

◆ strcmplex()

static int strcmplex ( const char str1,
const char str2 
)
static

Definition at line 323 of file util_expr_eval.c.

◆ subnet_parse_arg()

static int subnet_parse_arg ( ap_expr_lookup_parms parms)
static

< Module has handled this stage.

< Module has handled this stage.

< Module has handled this stage.

Definition at line 1545 of file util_expr_eval.c.

◆ tolower_func()

static const char * tolower_func ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

Definition at line 1039 of file util_expr_eval.c.

◆ toupper_func()

static const char * toupper_func ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

Definition at line 1047 of file util_expr_eval.c.

◆ unbase64_func()

static const char * unbase64_func ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

Definition at line 1067 of file util_expr_eval.c.

◆ unescape_func()

static const char * unescape_func ( ap_expr_eval_ctx_t ctx,
const void *  data,
const char arg 
)
static

< Module has handled this stage.

Definition at line 1161 of file util_expr_eval.c.

Variable Documentation

◆ [struct]

struct { ... } _hooks

◆ binary_op_providers

const struct expr_provider_single binary_op_providers[]
static
Initial value:
= {
{ op_ipmatch, "ipmatch", subnet_parse_arg, 0 },
{ op_fnmatch, "fnmatch", NULL, 0 },
{ op_strmatch, "strmatch", NULL, 0 },
{ op_strcmatch, "strcmatch", NULL, 0 },
{ NULL, NULL, NULL }
}
return NULL
Definition mod_so.c:359
static int op_fnmatch(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg1, const char *arg2)
static int op_strmatch(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg1, const char *arg2)
static int op_ipmatch(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg1, const char *arg2)
static int subnet_parse_arg(ap_expr_lookup_parms *parms)
static int op_strcmatch(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg1, const char *arg2)

Definition at line 1705 of file util_expr_eval.c.

◆ conn_var_names

const char* const conn_var_names[]
static
Initial value:
= {
"HTTPS",
"IPV6",
"CONN_LOG_ID",
"CONN_REMOTE_ADDR",
"HTTP2",
}

Definition at line 1274 of file util_expr_eval.c.

◆ is_http2

apr_OFN_http2_is_h2_t* is_http2 = NULL
static

Definition at line 1272 of file util_expr_eval.c.

◆ link_expr_lookup

apr_array_header_t* link_expr_lookup

Definition at line 48 of file util_expr_eval.c.

◆ misc_var_names

const char* const misc_var_names[]
static
Initial value:
= {
"TIME_YEAR",
"TIME_MON",
"TIME_DAY",
"TIME_HOUR",
"TIME_MIN",
"TIME_SEC",
"TIME_WDAY",
"TIME",
"SERVER_SOFTWARE",
"API_VERSION",
}

Definition at line 1493 of file util_expr_eval.c.

◆ req_header_header_names

const char* const req_header_header_names[]
static
Initial value:
= {
"User-Agent",
"Proxy-Connection",
"Referer",
"Cookie",
"Forwarded",
"Host",
"Accept"
}

Definition at line 1463 of file util_expr_eval.c.

◆ req_header_var_names

const char* const req_header_var_names[]
static
Initial value:
= {
"HTTP_USER_AGENT",
"HTTP_PROXY_CONNECTION",
"HTTP_REFERER",
"HTTP_COOKIE",
"HTTP_FORWARDED",
"HTTP_HOST",
"HTTP_ACCEPT",
}

Definition at line 1452 of file util_expr_eval.c.

◆ request_var_names

const char* const request_var_names[]
static

Definition at line 1324 of file util_expr_eval.c.

◆ string_func_providers

const struct expr_provider_single string_func_providers[]
static
Initial value:
= {
{ osenv_func, "osenv", NULL, 0 },
{ env_func, "env", NULL, 0 },
{ req_table_func, "resp", NULL, 0 },
{ req_table_func, "req", NULL, 0 },
{ req_table_func, "http", NULL, 0 },
{ req_table_func, "note", NULL, 0 },
{ req_table_func, "reqenv", NULL, 0 },
{ req_table_func, "req_novary", NULL, 0 },
{ tolower_func, "tolower", NULL, 0 },
{ toupper_func, "toupper", NULL, 0 },
{ escape_func, "escape", NULL, 0 },
{ unescape_func, "unescape", NULL, 0 },
{ file_func, "file", NULL, 1 },
{ filesize_func, "filesize", NULL, 1 },
{ base64_func, "base64", NULL, 0 },
{ unbase64_func, "unbase64", NULL, 0 },
{ sha1_func, "sha1", NULL, 0 },
{ md5_func, "md5", NULL, 0 },
{ ldap_func, "ldap", NULL, 0 },
{ NULL, NULL, NULL}
}
static const char * filesize_func(ap_expr_eval_ctx_t *ctx, const void *data, char *arg)
static const char * env_func(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static const char * unescape_func(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static const char * toupper_func(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static const char * md5_func(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static const char * file_func(ap_expr_eval_ctx_t *ctx, const void *data, char *arg)
static const char * escape_func(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static const char * sha1_func(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static const char * base64_func(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static const char * unbase64_func(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static const char * req_table_func(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static const char * osenv_func(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static const char * tolower_func(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static const char * ldap_func(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)

Definition at line 1661 of file util_expr_eval.c.

◆ unary_op_providers

const struct expr_provider_single unary_op_providers[]
static
Initial value:
= {
{ op_nz, "n", NULL, 0 },
{ op_nz, "z", NULL, 0 },
{ op_R, "R", subnet_parse_arg, 0 },
{ op_T, "T", NULL, 0 },
{ op_file_min, "d", NULL, 1 },
{ op_file_min, "e", NULL, 1 },
{ op_file_min, "f", NULL, 1 },
{ op_file_min, "s", NULL, 1 },
{ op_file_link, "L", NULL, 1 },
{ op_file_link, "h", NULL, 1 },
{ op_file_xbit, "x", NULL, 1 },
{ op_file_subr, "F", NULL, 0 },
{ op_url_subr, "U", NULL, 0 },
{ op_url_subr, "A", NULL, 0 },
{ NULL, NULL, NULL }
}
static int op_file_min(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static int op_nz(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static int op_file_link(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static int op_url_subr(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static int op_T(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static int op_file_xbit(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)
static int op_R(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg1)
static int op_file_subr(ap_expr_eval_ctx_t *ctx, const void *data, const char *arg)

Definition at line 1687 of file util_expr_eval.c.

◆ var_providers

const struct expr_provider_multi var_providers[]
static
Initial value:
= {
{ NULL, NULL }
}
static const char * conn_var_fn(ap_expr_eval_ctx_t *ctx, const void *data)
static const char *const req_header_var_names[]
static const char *const misc_var_names[]
static const char * request_var_fn(ap_expr_eval_ctx_t *ctx, const void *data)
static const char *const request_var_names[]
static const char * misc_var_fn(ap_expr_eval_ctx_t *ctx, const void *data)
static const char * req_header_var_fn(ap_expr_eval_ctx_t *ctx, const void *data)
static const char *const conn_var_names[]

Definition at line 1653 of file util_expr_eval.c.