You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by Brian Behlendorf <br...@hyperreal.com> on 1997/02/03 18:51:17 UTC

cvs commit: apache/src mod_rewrite.h

brian       97/02/03 09:51:16

  Modified:    src       mod_rewrite.h
  Log:
  Submitted by:	"Ralf S. Engelschall" <rs...@engelschall.com>
  
  This was supposed to occur along with the mod_rewrite.c commit.
  
  Revision  Changes    Path
  1.16      +60 -58    apache/src/mod_rewrite.h
  
  Index: mod_rewrite.h
  ===================================================================
  RCS file: /export/home/cvs/apache/src/mod_rewrite.h,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -C3 -r1.15 -r1.16
  *** mod_rewrite.h	1997/01/20 04:28:16	1.15
  --- mod_rewrite.h	1997/02/03 17:51:13	1.16
  ***************
  *** 1,3 ****
  --- 1,4 ----
  + 
    /* ====================================================================
     * Copyright (c) 1996,1997 The Apache Group.  All rights reserved.
     *
  ***************
  *** 63,69 ****
    **  |_| |_| |_|\___/ \__,_|___|_|  \___| \_/\_/ |_|  |_|\__\___|
    **                       |_____|
    **
  ! **  URL Rewriting Module, Version 2.3.10 (20-12-1996)
    **
    **  This module uses a rule-based rewriting engine (based on a
    **  regular-expression parser) to rewrite requested URLs on the fly. 
  --- 64,70 ----
    **  |_| |_| |_|\___/ \__,_|___|_|  \___| \_/\_/ |_|  |_|\__\___|
    **                       |_____|
    **
  ! **  URL Rewriting Module, Version 3.0.0 (01-02-1997)
    **
    **  This module uses a rule-based rewriting engine (based on a
    **  regular-expression parser) to rewrite requested URLs on the fly. 
  ***************
  *** 83,126 ****
    **  The documentation and latest release can be found on
    **  http://www.engelschall.com/sw/mod_rewrite/
    **
  ! **  Copyright (c) 1996 Ralf S. Engelschall, All rights reserved.
    **
    **  Written for The Apache Group by
    **      Ralf S. Engelschall
    **      rse@engelschall.com
  ! **      http://www.engelschall.com/
    */
    
    
    
    
  -     /* Check Apache Release */
  - #if (MODULE_MAGIC_NUMBER >= 19960725)
  - #define IS_APACHE_12         1
  - #define HAS_APACHE_REGEX_LIB 1
  - #endif
  - 
  - 
  -     /* The const problem:
  -        The Apache Group changed some essential prototypes
  -        to have an additional "const" qualifier. To be backward
  -        compatible with Apache 1.1.1 we use a special define */
  - #ifdef IS_APACHE_12
  - #define _const const
  - #else
  - #define _const  
  - #endif
  - 
  - 
  -     /* The RegExp support:
  -        For Apache 1.1.1 we provide our own Spencer V8 library,
  -        for Apache 1.2 and higher there is a Spencer POSIX library
  -        in the distribution */
  - #ifndef HAS_APACHE_REGEX_LIB
  - #include "regexp/regexp.h"
  - #endif
  - 
  - 
        /* The NDBM support:
           We support only NDBM files. 
           But we have to stat the file for the mtime,
  --- 84,100 ----
    **  The documentation and latest release can be found on
    **  http://www.engelschall.com/sw/mod_rewrite/
    **
  ! **  Copyright (c) 1996-1997 Ralf S. Engelschall, All rights reserved.
    **
    **  Written for The Apache Group by
    **      Ralf S. Engelschall
    **      rse@engelschall.com
  ! **      www.engelschall.com
    */
    
    
    
    
        /* The NDBM support:
           We support only NDBM files. 
           But we have to stat the file for the mtime,
  ***************
  *** 135,140 ****
  --- 109,138 ----
    #endif
    
    
  +     /* The locking support:
  +        Try to determine whether we should use
  +        fcntl() or flock(). */
  + #if defined(USE_FCNTL_SERIALIZED_ACCEPT)
  + #define USE_FCNTL 1
  + #include <fcntl.h>
  + #endif
  + #if defined(USE_FLOCK_SERIALIZED_ACCEPT)
  + #define USE_FLOCK 1
  + #include <sys/file.h>
  + #endif
  + #if !defined(USE_FCNTL) && !defined(USE_FLOCK)
  + #define USE_FLOCK 1
  + #include <sys/file.h>
  + #ifndef LOCK_UN
  + #undef USE_FLOCK
  + #define USE_FCNTL 1
  + #include <fcntl.h>
  + #endif
  + #endif
  + 
  + 
  + 
  + 
    /*
    **
    **  Some defines
  ***************
  *** 165,170 ****
  --- 163,169 ----
    #define RULEFLAG_PROXY              1<<7
    #define RULEFLAG_PASSTHROUGH        1<<8
    #define RULEFLAG_FORBIDDEN          1<<9
  + #define RULEFLAG_GONE               1<<10
    
    #define MAPTYPE_TXT                 1<<0
    #define MAPTYPE_DBM                 1<<1
  ***************
  *** 193,198 ****
  --- 192,201 ----
    #define LONG_STRING_LEN 2048
    #endif
    
  + #define MAX_ENV_FLAGS 5
  + 
  + #define EOS_PARANOIA(ca) ca[sizeof(ca)-1] = '\0'
  + 
    
    /*
    **
  ***************
  *** 215,240 ****
    typedef struct {
        char    *input;                /* Input string of RewriteCond */
        char    *pattern;              /* the RegExp pattern string */
  - #ifdef HAS_APACHE_REGEX_LIB
        regex_t *regexp;
  - #else
  -     regexp  *regexp;               /* the RegExp pattern compilation */
  - #endif
        int      flags;                /* Flags which control the match */
    } rewritecond_entry;
    
    typedef struct {
        array_header *rewriteconds;    /* the corresponding RewriteCond entries */
        char         *pattern;         /* the RegExp pattern string */
  - #ifdef HAS_APACHE_REGEX_LIB
        regex_t      *regexp;          /* the RegExp pattern compilation */
  ! #else
  !     regexp       *regexp;
  ! #endif
  !     char         *output;          /* the Substitution string */
  !     int           flags;           /* Flags which control the substitution */
  !     char         *forced_mimetype; /* forced MIME-type of substitution */
  !     int           skip;            /* number of next rules to skip */
    } rewriterule_entry;
    
    
  --- 218,237 ----
    typedef struct {
        char    *input;                /* Input string of RewriteCond */
        char    *pattern;              /* the RegExp pattern string */
        regex_t *regexp;
        int      flags;                /* Flags which control the match */
    } rewritecond_entry;
    
    typedef struct {
        array_header *rewriteconds;    /* the corresponding RewriteCond entries */
        char         *pattern;         /* the RegExp pattern string */
        regex_t      *regexp;          /* the RegExp pattern compilation */
  !     char         *output;              /* the Substitution string */
  !     int           flags;               /* Flags which control the substitution */
  !     char         *forced_mimetype;     /* forced MIME type of substitution */
  !     int           forced_responsecode; /* forced HTTP redirect response status */
  !     char         *env[MAX_ENV_FLAGS+1];/* added environment variables */
  !     int           skip;                /* number of next rules to skip */
    } rewriterule_entry;
    
    
  ***************
  *** 298,319 ****
    static void *config_perdir_merge (pool *p, void *basev, void *overridesv);
    
        /* config directive handling */
  ! static _const char *cmd_rewriteengine  (cmd_parms *cmd, rewrite_perdir_conf *dconf, int flag);
  ! static _const char *cmd_rewriteoptions (cmd_parms *cmd, rewrite_perdir_conf *dconf, char *option);
  ! static _const char *cmd_rewriteoptions_setoption(pool *p, int *options, char *name);
  ! static _const char *cmd_rewritelog     (cmd_parms *cmd, void *dconf, char *a1);
  ! static _const char *cmd_rewriteloglevel(cmd_parms *cmd, void *dconf, char *a1);
  ! static _const char *cmd_rewritemap     (cmd_parms *cmd, void *dconf, char *a1, char *a2);
  ! 
  ! static _const char *cmd_rewritebase(cmd_parms *cmd, rewrite_perdir_conf *dconf, char *a1);
  ! 
  ! static _const char *cmd_rewritecond    (cmd_parms *cmd, rewrite_perdir_conf *dconf, char *str);
  ! static _const char *cmd_rewritecond_parseflagfield(pool *p, rewritecond_entry *new, char *str);
  ! static _const char *cmd_rewritecond_setflag       (pool *p, rewritecond_entry *cfg, char *key, char *val);
  ! 
  ! extern _const char *cmd_rewriterule    (cmd_parms *cmd, rewrite_perdir_conf *dconf, char *str);
  ! static _const char *cmd_rewriterule_parseflagfield(pool *p, rewriterule_entry *new, char *str);
  ! static _const char *cmd_rewriterule_setflag       (pool *p, rewriterule_entry *cfg, char *key, char *val);
    
        /* initialisation */
    static void init_module(server_rec *s, pool *p);
  --- 295,316 ----
    static void *config_perdir_merge (pool *p, void *basev, void *overridesv);
    
        /* config directive handling */
  ! static const char *cmd_rewriteengine  (cmd_parms *cmd, rewrite_perdir_conf *dconf, int flag);
  ! static const char *cmd_rewriteoptions (cmd_parms *cmd, rewrite_perdir_conf *dconf, char *option);
  ! static const char *cmd_rewriteoptions_setoption(pool *p, int *options, char *name);
  ! static const char *cmd_rewritelog     (cmd_parms *cmd, void *dconf, char *a1);
  ! static const char *cmd_rewriteloglevel(cmd_parms *cmd, void *dconf, char *a1);
  ! static const char *cmd_rewritemap     (cmd_parms *cmd, void *dconf, char *a1, char *a2);
  ! 
  ! static const char *cmd_rewritebase(cmd_parms *cmd, rewrite_perdir_conf *dconf, char *a1);
  ! 
  ! static const char *cmd_rewritecond    (cmd_parms *cmd, rewrite_perdir_conf *dconf, char *str);
  ! static const char *cmd_rewritecond_parseflagfield(pool *p, rewritecond_entry *new, char *str);
  ! static const char *cmd_rewritecond_setflag       (pool *p, rewritecond_entry *cfg, char *key, char *val);
  ! 
  ! extern const char *cmd_rewriterule    (cmd_parms *cmd, rewrite_perdir_conf *dconf, char *str);
  ! static const char *cmd_rewriterule_parseflagfield(pool *p, rewriterule_entry *new, char *str);
  ! static const char *cmd_rewriterule_setflag       (pool *p, rewriterule_entry *cfg, char *key, char *val);
    
        /* initialisation */
    static void init_module(server_rec *s, pool *p);
  ***************
  *** 370,375 ****
  --- 367,373 ----
    static char  *subst_prefix_path(request_rec *r, char *input, char *match, char *subst);
    static int    parseargline(char *str, char **a1, char **a2, char **a3);
    static int    prefix_stat(const char *path, struct stat *sb);
  + static void   add_env_variable(request_rec *r, char *s);
    
        /* DNS functions */
    static int    is_this_our_host(request_rec *r, char *testhost);
  ***************
  *** 378,383 ****
  --- 376,385 ----
    
        /* Proxy Module check */
    static int is_proxy_available(server_rec *s);
  + 
  +     /* File locking */
  + static void fd_lock(int fd);
  + static void fd_unlock(int fd);
    
    #endif /* _MOD_REWRITE_H */