Apache HTTPD
Classes | Macros | Typedefs | Enumerations | Functions | Variables
mod_include.c File Reference
#include "apr.h"
#include "apr_strings.h"
#include "apr_thread_proc.h"
#include "apr_hash.h"
#include "apr_user.h"
#include "apr_lib.h"
#include "apr_optional.h"
#include "apr_want.h"
#include "ap_config.h"
#include "util_filter.h"
#include "httpd.h"
#include "http_config.h"
#include "http_core.h"
#include "http_request.h"
#include "http_protocol.h"
#include "http_log.h"
#include "http_main.h"
#include "util_script.h"
#include "mod_include.h"
#include "ap_expr.h"

Go to the source code of this file.

Classes

struct  result_item
 
struct  token_t
 
struct  parse_node
 
struct  include_dir_config
 
struct  include_server_config
 
struct  arg_item
 
struct  backref_t
 
struct  bndm_t
 
struct  ssi_internal_ctx
 

Macros

#define APR_WANT_STRFUNC
 
#define APR_WANT_MEMFUNC
 
#define RAW_ASCII_CHAR(ch)   (ch)
 
#define TYPE_TOKEN(token, ttype)   (token)->type = ttype
 
#define CREATE_NODE(ctx, name)
 
#define DEBUG_INIT(ctx, f, bb)
 
#define DEBUG_PRINTF(arg)
 
#define DEBUG_DUMP_TOKEN(ctx, token)
 
#define DEBUG_DUMP_EVAL(ctx, node)
 
#define DEBUG_DUMP_UNMATCHED(ctx, unmatched)
 
#define DEBUG_DUMP_COND(ctx, text)
 
#define DEBUG_DUMP_TREE(ctx, root)
 
#define LAZY_VALUE   (&lazy_eval_sentinel)
 
#define DEFAULT_START_SEQUENCE   "<!--#"
 
#define DEFAULT_END_SEQUENCE   "-->"
 
#define DEFAULT_ERROR_MSG   "[an error occurred while processing this directive]"
 
#define DEFAULT_TIME_FORMAT   "%A, %d-%b-%Y %H:%M:%S %Z"
 
#define DEFAULT_UNDEFINED_ECHO   "(none)"
 
#define UNSET   -1
 
#define DEFAULT_XBITHACK   XBITHACK_OFF
 
#define MAXENTLEN   (6)
 
#define MERGE(b, o, n, val, unset)   n->val = o->val != unset ? o->val : b->val
 

Typedefs

typedef struct result_item result_item_t
 
typedef struct parse_node parse_node_t
 
typedef struct arg_item arg_item_t
 

Enumerations

enum  token_type_t {
  TOKEN_STRING , TOKEN_RE , TOKEN_AND , TOKEN_OR ,
  TOKEN_NOT , TOKEN_EQ , TOKEN_NE , TOKEN_RBRACE ,
  TOKEN_LBRACE , TOKEN_GROUP , TOKEN_GE , TOKEN_LE ,
  TOKEN_GT , TOKEN_LT , TOKEN_ACCESS
}
 
enum  xbithack_t { XBITHACK_OFF , XBITHACK_ON , XBITHACK_FULL , XBITHACK_UNSET }
 
enum  parse_state_t {
  PARSE_PRE_HEAD , PARSE_HEAD , PARSE_DIRECTIVE , PARSE_DIRECTIVE_POSTNAME ,
  PARSE_DIRECTIVE_TAIL , PARSE_DIRECTIVE_POSTTAIL , PARSE_PRE_ARG , PARSE_ARG ,
  PARSE_ARG_NAME , PARSE_ARG_POSTNAME , PARSE_ARG_EQ , PARSE_ARG_PREVAL ,
  PARSE_ARG_VAL , PARSE_ARG_VAL_ESC , PARSE_ARG_POSTVAL , PARSE_TAIL ,
  PARSE_TAIL_SEQ , PARSE_EXECUTE
}
 

Functions

static void decodehtml (char *s)
 
static void add_include_vars (request_rec *r)
 
static const charadd_include_vars_lazy (request_rec *r, const char *var, const char *timefmt)
 
static const charget_include_var (const char *var, include_ctx_t *ctx)
 
static const charinclude_expr_var_fn (ap_expr_eval_ctx_t *eval_ctx, const void *data, const char *arg)
 
static int include_expr_lookup (ap_expr_lookup_parms *parms)
 
static charap_ssi_parse_string (include_ctx_t *ctx, const char *in, char *out, apr_size_t length, int leave_name)
 
static APR_INLINE int re_check (include_ctx_t *ctx, const char *string, const char *rexp)
 
static int get_ptoken (include_ctx_t *ctx, const char **parse, token_t *token, token_t *previous)
 
static int parse_expr (include_ctx_t *ctx, const char *expr, int *was_error)
 
static int parse_ap_expr (include_ctx_t *ctx, const char *expr, int *was_error)
 
static void ap_ssi_get_tag_and_value (include_ctx_t *ctx, char **tag, char **tag_val, int dodecode)
 
static int find_file (request_rec *r, const char *directive, const char *tag, char *tag_val, apr_finfo_t *finfo)
 
static apr_status_t handle_comment (include_ctx_t *ctx, ap_filter_t *f, apr_bucket_brigade *bb)
 
static apr_status_t handle_include (include_ctx_t *ctx, ap_filter_t *f, apr_bucket_brigade *bb)
 
static apr_status_t handle_echo (include_ctx_t *ctx, ap_filter_t *f, apr_bucket_brigade *bb)
 
static apr_status_t handle_config (include_ctx_t *ctx, ap_filter_t *f, apr_bucket_brigade *bb)
 
static apr_status_t handle_fsize (include_ctx_t *ctx, ap_filter_t *f, apr_bucket_brigade *bb)
 
static apr_status_t handle_flastmod (include_ctx_t *ctx, ap_filter_t *f, apr_bucket_brigade *bb)
 
static apr_status_t handle_if (include_ctx_t *ctx, ap_filter_t *f, apr_bucket_brigade *bb)
 
static apr_status_t handle_elif (include_ctx_t *ctx, ap_filter_t *f, apr_bucket_brigade *bb)
 
static apr_status_t handle_else (include_ctx_t *ctx, ap_filter_t *f, apr_bucket_brigade *bb)
 
static apr_status_t handle_endif (include_ctx_t *ctx, ap_filter_t *f, apr_bucket_brigade *bb)
 
static apr_status_t handle_set (include_ctx_t *ctx, ap_filter_t *f, apr_bucket_brigade *bb)
 
static apr_status_t handle_printenv (include_ctx_t *ctx, ap_filter_t *f, apr_bucket_brigade *bb)
 
static bndm_tbndm_compile (apr_pool_t *pool, const char *n, apr_size_t nl)
 
static apr_size_t bndm (bndm_t *t, const char *h, apr_size_t hl)
 
static apr_size_t find_start_sequence (include_ctx_t *ctx, const char *data, apr_size_t len)
 
static apr_size_t find_partial_start_sequence (include_ctx_t *ctx, const char *data, apr_size_t len, apr_size_t *release)
 
static apr_size_t find_directive (include_ctx_t *ctx, const char *data, apr_size_t len, char ***store, apr_size_t **store_len)
 
static apr_size_t find_arg_or_tail (include_ctx_t *ctx, const char *data, apr_size_t len)
 
static apr_size_t find_tail (include_ctx_t *ctx, const char *data, apr_size_t len)
 
static apr_size_t find_argument (include_ctx_t *ctx, const char *data, apr_size_t len, char ***store, apr_size_t **store_len)
 
static apr_status_t send_parsed_content (ap_filter_t *f, apr_bucket_brigade *bb)
 
static int includes_setup (ap_filter_t *f)
 
static apr_status_t includes_filter (ap_filter_t *f, apr_bucket_brigade *b)
 
static int include_fixup (request_rec *r)
 
static void * create_includes_dir_config (apr_pool_t *p, char *dummy)
 
static void * merge_includes_dir_config (apr_pool_t *p, void *basev, void *overridesv)
 
static void * create_includes_server_config (apr_pool_t *p, server_rec *server)
 
static const charset_xbithack (cmd_parms *cmd, void *mconfig, const char *arg)
 
static const charset_default_start_tag (cmd_parms *cmd, void *mconfig, const char *tag)
 
static const charset_default_end_tag (cmd_parms *cmd, void *mconfig, const char *tag)
 
static const charset_undefined_echo (cmd_parms *cmd, void *mconfig, const char *msg)
 
static const charset_default_error_msg (cmd_parms *cmd, void *mconfig, const char *msg)
 
static const charset_default_time_fmt (cmd_parms *cmd, void *mconfig, const char *fmt)
 
static int include_post_config (apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
 
static void ap_register_include_handler (char *tag, include_handler_fn_t *func)
 
static void register_hooks (apr_pool_t *p)
 

Variables

static apr_hash_tinclude_handlers
 
static apr_OFN_ap_register_include_handler_tssi_pfn_register
 
static const char lazy_eval_sentinel = '\0'
 
static const command_rec includes_cmds []
 
static int *const aplog_module_index = &( include_module.module_index)
 

Macro Definition Documentation

◆ APR_WANT_MEMFUNC

#define APR_WANT_MEMFUNC

Definition at line 26 of file mod_include.c.

◆ APR_WANT_STRFUNC

#define APR_WANT_STRFUNC

Definition at line 25 of file mod_include.c.

◆ CREATE_NODE

#define CREATE_NODE (   ctx,
  name 
)
Value:
do { \
(name) = apr_palloc((ctx)->dpool, sizeof(*(name))); \
(name)->parent = (name)->left = (name)->right = NULL; \
(name)->done = 0; \
} while(0)
apr_brigade_flush void * ctx
apr_size_t size
apr_pool_t * parent
Definition apr_pools.h:197
return NULL
Definition mod_so.c:359
char * name

Definition at line 423 of file mod_include.c.

◆ DEBUG_DUMP_COND

#define DEBUG_DUMP_COND (   ctx,
  text 
)

Definition at line 434 of file mod_include.c.

◆ DEBUG_DUMP_EVAL

#define DEBUG_DUMP_EVAL (   ctx,
  node 
)

Definition at line 432 of file mod_include.c.

◆ DEBUG_DUMP_TOKEN

#define DEBUG_DUMP_TOKEN (   ctx,
  token 
)

Definition at line 431 of file mod_include.c.

◆ DEBUG_DUMP_TREE

#define DEBUG_DUMP_TREE (   ctx,
  root 
)

Definition at line 435 of file mod_include.c.

◆ DEBUG_DUMP_UNMATCHED

#define DEBUG_DUMP_UNMATCHED (   ctx,
  unmatched 
)

Definition at line 433 of file mod_include.c.

◆ DEBUG_INIT

#define DEBUG_INIT (   ctx,
  f,
  bb 
)

Definition at line 429 of file mod_include.c.

◆ DEBUG_PRINTF

#define DEBUG_PRINTF (   arg)

Definition at line 430 of file mod_include.c.

◆ DEFAULT_END_SEQUENCE

#define DEFAULT_END_SEQUENCE   "-->"

Definition at line 465 of file mod_include.c.

◆ DEFAULT_ERROR_MSG

#define DEFAULT_ERROR_MSG   "[an error occurred while processing this directive]"

Definition at line 466 of file mod_include.c.

◆ DEFAULT_START_SEQUENCE

#define DEFAULT_START_SEQUENCE   "<!--#"

Definition at line 464 of file mod_include.c.

◆ DEFAULT_TIME_FORMAT

#define DEFAULT_TIME_FORMAT   "%A, %d-%b-%Y %H:%M:%S %Z"

Definition at line 467 of file mod_include.c.

◆ DEFAULT_UNDEFINED_ECHO

#define DEFAULT_UNDEFINED_ECHO   "(none)"

Definition at line 468 of file mod_include.c.

◆ DEFAULT_XBITHACK

#define DEFAULT_XBITHACK   XBITHACK_OFF

Definition at line 475 of file mod_include.c.

◆ LAZY_VALUE

#define LAZY_VALUE   (&lazy_eval_sentinel)

Definition at line 461 of file mod_include.c.

◆ MAXENTLEN

#define MAXENTLEN   (6)

Definition at line 497 of file mod_include.c.

◆ MERGE

#define MERGE (   b,
  o,
  n,
  val,
  unset 
)    n->val = o->val != unset ? o->val : b->val

Definition at line 4035 of file mod_include.c.

◆ RAW_ASCII_CHAR

#define RAW_ASCII_CHAR (   ch)    (ch)

Definition at line 50 of file mod_include.c.

◆ TYPE_TOKEN

#define TYPE_TOKEN (   token,
  ttype 
)    (token)->type = ttype

Definition at line 421 of file mod_include.c.

◆ UNSET

#define UNSET   -1

Definition at line 470 of file mod_include.c.

Typedef Documentation

◆ arg_item_t

◆ parse_node_t

◆ result_item_t

Enumeration Type Documentation

◆ parse_state_t

Enumerator
PARSE_PRE_HEAD 
PARSE_HEAD 
PARSE_DIRECTIVE 
PARSE_DIRECTIVE_POSTNAME 
PARSE_DIRECTIVE_TAIL 
PARSE_DIRECTIVE_POSTTAIL 
PARSE_PRE_ARG 
PARSE_ARG 
PARSE_ARG_NAME 
PARSE_ARG_POSTNAME 
PARSE_ARG_EQ 
PARSE_ARG_PREVAL 
PARSE_ARG_VAL 
PARSE_ARG_VAL_ESC 
PARSE_ARG_POSTVAL 
PARSE_TAIL 
PARSE_TAIL_SEQ 
PARSE_EXECUTE 

Definition at line 131 of file mod_include.c.

◆ token_type_t

Enumerator
TOKEN_STRING 
TOKEN_RE 
TOKEN_AND 
TOKEN_OR 
TOKEN_NOT 
TOKEN_EQ 
TOKEN_NE 
TOKEN_RBRACE 
TOKEN_LBRACE 
TOKEN_GROUP 
TOKEN_GE 
TOKEN_LE 
TOKEN_GT 
TOKEN_LT 
TOKEN_ACCESS 

Definition at line 70 of file mod_include.c.

◆ xbithack_t

Enumerator
XBITHACK_OFF 
XBITHACK_ON 
XBITHACK_FULL 
XBITHACK_UNSET 

Definition at line 108 of file mod_include.c.

Function Documentation

◆ add_include_vars()

static void add_include_vars ( request_rec r)
static

Definition at line 592 of file mod_include.c.

◆ add_include_vars_lazy()

static const char * add_include_vars_lazy ( request_rec r,
const char var,
const char timefmt 
)
static

Definition at line 621 of file mod_include.c.

◆ ap_register_include_handler()

static void ap_register_include_handler ( char tag,
include_handler_fn_t func 
)
static

Definition at line 4213 of file mod_include.c.

◆ ap_ssi_get_tag_and_value()

static void ap_ssi_get_tag_and_value ( include_ctx_t ctx,
char **  tag,
char **  tag_val,
int  dodecode 
)
static

Definition at line 1667 of file mod_include.c.

◆ ap_ssi_parse_string()

static char * ap_ssi_parse_string ( include_ctx_t ctx,
const char in,
char out,
apr_size_t  length,
int  leave_name 
)
static

Definition at line 742 of file mod_include.c.

◆ bndm()

static apr_size_t bndm ( bndm_t t,
const char h,
apr_size_t  hl 
)
static

Definition at line 2792 of file mod_include.c.

◆ bndm_compile()

static bndm_t * bndm_compile ( apr_pool_t pool,
const char n,
apr_size_t  nl 
)
static

Definition at line 2765 of file mod_include.c.

◆ create_includes_dir_config()

static void * create_includes_dir_config ( apr_pool_t p,
char dummy 
)
static

Definition at line 4023 of file mod_include.c.

◆ create_includes_server_config()

static void * create_includes_server_config ( apr_pool_t p,
server_rec server 
)
static

Definition at line 4051 of file mod_include.c.

◆ decodehtml()

static void decodehtml ( char s)
static

Definition at line 502 of file mod_include.c.

◆ find_arg_or_tail()

static apr_size_t find_arg_or_tail ( include_ctx_t ctx,
const char data,
apr_size_t  len 
)
static

Definition at line 3107 of file mod_include.c.

◆ find_argument()

static apr_size_t find_argument ( include_ctx_t ctx,
const char data,
apr_size_t  len,
char ***  store,
apr_size_t **  store_len 
)
static

Definition at line 3173 of file mod_include.c.

◆ find_directive()

static apr_size_t find_directive ( include_ctx_t ctx,
const char data,
apr_size_t  len,
char ***  store,
apr_size_t **  store_len 
)
static

Definition at line 3007 of file mod_include.c.

◆ find_file()

static int find_file ( request_rec r,
const char directive,
const char tag,
char tag_val,
apr_finfo_t finfo 
)
static

< Group protection bits

< type, mtime, ctime, atime, size

Definition at line 1687 of file mod_include.c.

◆ find_partial_start_sequence()

static apr_size_t find_partial_start_sequence ( include_ctx_t ctx,
const char data,
apr_size_t  len,
apr_size_t release 
)
static

Definition at line 2911 of file mod_include.c.

◆ find_start_sequence()

static apr_size_t find_start_sequence ( include_ctx_t ctx,
const char data,
apr_size_t  len 
)
static

Definition at line 2838 of file mod_include.c.

◆ find_tail()

static apr_size_t find_tail ( include_ctx_t ctx,
const char data,
apr_size_t  len 
)
static

Definition at line 3131 of file mod_include.c.

◆ get_include_var()

static const char * get_include_var ( const char var,
include_ctx_t ctx 
)
static

Definition at line 648 of file mod_include.c.

◆ get_ptoken()

static int get_ptoken ( include_ctx_t ctx,
const char **  parse,
token_t token,
token_t previous 
)
static

Definition at line 990 of file mod_include.c.

◆ handle_comment()

static apr_status_t handle_comment ( include_ctx_t ctx,
ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 1769 of file mod_include.c.

◆ handle_config()

static apr_status_t handle_config ( include_ctx_t ctx,
ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 2070 of file mod_include.c.

◆ handle_echo()

static apr_status_t handle_echo ( include_ctx_t ctx,
ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 1917 of file mod_include.c.

◆ handle_elif()

static apr_status_t handle_elif ( include_ctx_t ctx,
ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 2380 of file mod_include.c.

◆ handle_else()

static apr_status_t handle_else ( include_ctx_t ctx,
ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 2456 of file mod_include.c.

◆ handle_endif()

static apr_status_t handle_endif ( include_ctx_t ctx,
ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 2496 of file mod_include.c.

◆ handle_flastmod()

static apr_status_t handle_flastmod ( include_ctx_t ctx,
ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 2247 of file mod_include.c.

◆ handle_fsize()

static apr_status_t handle_fsize ( include_ctx_t ctx,
ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 2159 of file mod_include.c.

◆ handle_if()

static apr_status_t handle_if ( include_ctx_t ctx,
ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 2306 of file mod_include.c.

◆ handle_include()

static apr_status_t handle_include ( include_ctx_t ctx,
ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 1784 of file mod_include.c.

◆ handle_printenv()

static apr_status_t handle_printenv ( include_ctx_t ctx,
ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 2695 of file mod_include.c.

◆ handle_set()

static apr_status_t handle_set ( include_ctx_t ctx,
ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 2529 of file mod_include.c.

◆ include_expr_lookup()

static int include_expr_lookup ( ap_expr_lookup_parms parms)
static

< Module has handled this stage.

Definition at line 714 of file mod_include.c.

◆ include_expr_var_fn()

static const char * include_expr_var_fn ( ap_expr_eval_ctx_t eval_ctx,
const void *  data,
const char arg 
)
static

Definition at line 694 of file mod_include.c.

◆ include_fixup()

static int include_fixup ( request_rec r)
static

< Module declines to handle

< Execute by user

<

Deprecated:
See also
APR_FPROT_UEXECUTE

< Module declines to handle

< Module declines to handle

< Module declines to handle

Definition at line 3970 of file mod_include.c.

◆ include_post_config()

static int include_post_config ( apr_pool_t p,
apr_pool_t plog,
apr_pool_t ptemp,
server_rec s 
)
static

< Module has handled this stage.

Definition at line 4158 of file mod_include.c.

◆ includes_filter()

static apr_status_t includes_filter ( ap_filter_t f,
apr_bucket_brigade b 
)
static

< Modification Time

< Group protection bits

< Execute by group

<

Deprecated:
See also
APR_FPROT_GEXECUTE

Definition at line 3830 of file mod_include.c.

◆ includes_setup()

static int includes_setup ( ap_filter_t f)
static

< Group protection bits

< Execute by group

<

Deprecated:
See also
APR_FPROT_GEXECUTE

< Module has handled this stage.

Definition at line 3803 of file mod_include.c.

◆ merge_includes_dir_config()

static void * merge_includes_dir_config ( apr_pool_t p,
void *  basev,
void *  overridesv 
)
static

Definition at line 4036 of file mod_include.c.

◆ parse_ap_expr()

static int parse_ap_expr ( include_ctx_t ctx,
const char expr,
int was_error 
)
static

Definition at line 1590 of file mod_include.c.

◆ parse_expr()

static int parse_expr ( include_ctx_t ctx,
const char expr,
int was_error 
)
static

Definition at line 1167 of file mod_include.c.

◆ re_check()

static APR_INLINE int re_check ( include_ctx_t ctx,
const char string,
const char rexp 
)
static

unused

Definition at line 963 of file mod_include.c.

◆ register_hooks()

static void register_hooks ( apr_pool_t p)
static

Definition at line 4218 of file mod_include.c.

◆ send_parsed_content()

static apr_status_t send_parsed_content ( ap_filter_t f,
apr_bucket_brigade bb 
)
static

Definition at line 3388 of file mod_include.c.

◆ set_default_end_tag()

static const char * set_default_end_tag ( cmd_parms cmd,
void *  mconfig,
const char tag 
)
static

Definition at line 4102 of file mod_include.c.

◆ set_default_error_msg()

static const char * set_default_error_msg ( cmd_parms cmd,
void *  mconfig,
const char msg 
)
static

Definition at line 4131 of file mod_include.c.

◆ set_default_start_tag()

static const char * set_default_start_tag ( cmd_parms cmd,
void *  mconfig,
const char tag 
)
static

Definition at line 4082 of file mod_include.c.

◆ set_default_time_fmt()

static const char * set_default_time_fmt ( cmd_parms cmd,
void *  mconfig,
const char fmt 
)
static

Definition at line 4140 of file mod_include.c.

◆ set_undefined_echo()

static const char * set_undefined_echo ( cmd_parms cmd,
void *  mconfig,
const char msg 
)
static

Definition at line 4122 of file mod_include.c.

◆ set_xbithack()

static const char * set_xbithack ( cmd_parms cmd,
void *  mconfig,
const char arg 
)
static

Definition at line 4062 of file mod_include.c.

Variable Documentation

◆ aplog_module_index

int* const aplog_module_index = &( include_module.module_index)
static

Definition at line 4229 of file mod_include.c.

◆ include_handlers

apr_hash_t* include_handlers
static

Definition at line 452 of file mod_include.c.

◆ includes_cmds

const command_rec includes_cmds[]
static
Initial value:
=
{
{ "XBitHack" , set_xbithack , NULL , 2 , TAKE1, "Off, On, or Full" },
{ "SSIErrorMsg" , set_default_error_msg , NULL , ( 1 | 2 | 4 | 8 | 16 ) , TAKE1, "a string" },
{ "SSITimeFormat" , set_default_time_fmt , NULL , ( 1 | 2 | 4 | 8 | 16 ) , TAKE1, "a strftime(3) formatted string" },
{ "SSIStartTag" , set_default_start_tag , NULL , 128 , TAKE1, "SSI Start String Tag" },
{ "SSIEndTag" , set_default_end_tag , NULL , 128 , TAKE1, "SSI End String Tag" },
{ "SSIUndefinedEcho" , set_undefined_echo , NULL , ( 1 | 2 | 4 | 8 | 16 ) , TAKE1, "String to be displayed if an echoed variable is undefined" },
{ "SSILegacyExprParser" , ap_set_flag_slot_char , (void *)((long) (((char *) (&((( include_dir_config * )NULL)-> legacy_expr ))) - ((char *) NULL))) , 1 , FLAG, "Whether to use the legacy expression parser compatible " "with <= 2.2.x. Limited to 'on' or 'off'" },
{ "SSILastModified" , ap_set_flag_slot_char , (void *)((long) (((char *) (&((( include_dir_config * )NULL)-> lastmodified ))) - ((char *) NULL))) , 1 , FLAG, "Whether to set the last modified header or respect " "an existing header. Limited to 'on' or 'off'" },
{ "SSIEtag" , ap_set_flag_slot_char , (void *)((long) (((char *) (&((( include_dir_config * )NULL)-> etag ))) - ((char *) NULL))) , 1 , FLAG, "Whether to allow the generation of ETags within the server. " "Existing ETags will be preserved. Limited to 'on' or 'off'" },
{NULL}
}
const char * ap_set_flag_slot_char(cmd_parms *cmd, void *struct_ptr, int arg)
Definition config.c:1523
@ TAKE1
Definition http_config.h:51
@ FLAG
Definition http_config.h:59
static const char * set_default_error_msg(cmd_parms *cmd, void *mconfig, const char *msg)
static const char * set_default_end_tag(cmd_parms *cmd, void *mconfig, const char *tag)
static const char * set_default_time_fmt(cmd_parms *cmd, void *mconfig, const char *fmt)
static const char * set_default_start_tag(cmd_parms *cmd, void *mconfig, const char *tag)
static const char * set_xbithack(cmd_parms *cmd, void *mconfig, const char *arg)
static const char * set_undefined_echo(cmd_parms *cmd, void *mconfig, const char *msg)

Definition at line 4183 of file mod_include.c.

◆ lazy_eval_sentinel

const char lazy_eval_sentinel = '\0'
static

Definition at line 460 of file mod_include.c.

◆ ssi_pfn_register

apr_OFN_ap_register_include_handler_t* ssi_pfn_register
static

Definition at line 455 of file mod_include.c.