• 大小: 801KB
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: 其他
  • 标签: apache  ssl  mod  

资源简介

apache插件,用以实现SSL协议,good luck!

资源截图

代码片段和文件信息

/*
**  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

评论

共有 条评论