资源简介
The mod_ssl package has three sets of documents: First various administrative documents in plain text format which describe install-time issues, second a comprehensive HTML-based user manual which describes all run-time issues and third slides presentations about mod_ssl.
代码片段和文件信息
/*
** mod_define.c - Apache module for configuration defines ($xxx)
**
** Copyright (c) 1998-2000 Ralf S. Engelschall
** Copyright (c) 1998-2000 Christian Reiber
**
** Permission to use copy modify and distribute this software for
** any purpose with or without fee is hereby granted provided that
** the above copyright notice and this permission notice appear in all
** copies.
**
** THIS SOFTWARE IS PROVIDED ‘‘AS IS‘‘ AND ANY EXPRESSED OR IMPLIED
** WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
** IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
** CONTRIBUTORS BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL
** SPECIAL EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT
** LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
** USE DATA OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY WHETHER IN CONTRACT STRICT LIABILITY
** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
** OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF
** SUCH DAMAGE.
*/
/*
* HISTORY
*
* v1.0: Originally written in December 1998 by
* Ralf S. Engelschall and
* Christian Reiber
*
* v1.1: Completely Overhauled in August 1999 by
* Ralf S. Engelschall
*/
#include “ap_config.h“
#include “ap_ctype.h“
#include “httpd.h“
#include “http_config.h“
#include “http_conf_globals.h“
#include “http_core.h“
#include “http_log.h“
#ifndef EAPI
#error “This module requires the Extended API (EAPI) facilities.“
#endif
/*
* The global table of defines
*/
static table *tDefines = NULL; /* global table of defines */
static int bOnceSeenADefine = FALSE; /* optimization flag */
/*
* Forward declaration
*/
static int DefineIndex (pool * char * int * int * char **);
static char *DefineFetch (pool * char *);
static char *DefineExpand (pool * char * int char *);
static void DefineInit (pool *);
static void DefineCleanup (void *);
static char *DefineRewriteHook(cmd_parms * void * const char *);
/*
* Character classes for scanner function
*/
typedef enum {
CC_ESCAPE CC_DOLLAR CC_BRACEOPEN CC_BRACECLOSE
CC_IDCHAR1 CC_IDCHAR CC_OTHER CC_EOS
} CharClass;
/*
* Scanner states for scanner function
*/
typedef enum {
SS_NONE SS_SKIP SS_DOLLAR SS_TOKEN_BRACED
SS_TOKEN_UNBRACED SS_ERROR SS_FOUND
} ScanState;
/*
* Default meta characters
*/
#define DEFAULT_MC_ESCAPE “\\“
#define DEFAULT_MC_DOLLAR “$“
#define DEFAULT_MC_BRACEOPEN “{“
#define DEFAULT_MC_BRACECLOSE “}“
/*
* Scanner for variable constructs $xxx and ${xxx}
*/
static int DefineIndex(pool *p char *cpLine int *pos int *len char **cpVar)
{
int rc;
char *cp;
char *cp2;
CharCl
- 上一篇:html收据模板
- 下一篇:jacob/js调用ocx控件的demo
评论
共有 条评论