ben         99/04/10 14:51:06

  Modified:    src      CHANGES
               src/modules/standard mod_env.c
  Log:
  Make env directives per-directory instead of per-server.
  
  Revision  Changes    Path
  1.1306    +3 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1305
  retrieving revision 1.1306
  diff -u -r1.1305 -r1.1306
  --- CHANGES   1999/04/10 15:08:43     1.1305
  +++ CHANGES   1999/04/10 21:51:01     1.1306
  @@ -1,5 +1,8 @@
   Changes with Apache 1.3.7
   
  +  *) Make {Set,Unset,Pass}Env per-directory instead of per-server.
  +     [Ben Laurie]
  +
     *) Correct an apparent typo: on the Windows and MPE platforms, the
        htpasswd utility was limiting passwords to only 8 characters.
        [Ken Coar]
  
  
  
  1.29      +23 -27    apache-1.3/src/modules/standard/mod_env.c
  
  Index: mod_env.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_env.c,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- mod_env.c 1999/03/22 23:38:21     1.28
  +++ mod_env.c 1999/04/10 21:51:06     1.29
  @@ -105,26 +105,26 @@
       table *vars;
       char *unsetenv;
       int vars_present;
  -} env_server_config_rec;
  +} env_dir_config_rec;
   
   module MODULE_VAR_EXPORT env_module;
   
  -static void *create_env_server_config(pool *p, server_rec *dummy)
  +static void *create_env_dir_config(pool *p, char *dummy)
   {
  -    env_server_config_rec *new =
  -    (env_server_config_rec *) ap_palloc(p, sizeof(env_server_config_rec));
  +    env_dir_config_rec *new =
  +    (env_dir_config_rec *) ap_palloc(p, sizeof(env_dir_config_rec));
       new->vars = ap_make_table(p, 50);
       new->unsetenv = "";
       new->vars_present = 0;
       return (void *) new;
   }
   
  -static void *merge_env_server_configs(pool *p, void *basev, void *addv)
  +static void *merge_env_dir_configs(pool *p, void *basev, void *addv)
   {
  -    env_server_config_rec *base = (env_server_config_rec *) basev;
  -    env_server_config_rec *add = (env_server_config_rec *) addv;
  -    env_server_config_rec *new =
  -    (env_server_config_rec *) ap_palloc(p, sizeof(env_server_config_rec));
  +    env_dir_config_rec *base = (env_dir_config_rec *) basev;
  +    env_dir_config_rec *add = (env_dir_config_rec *) addv;
  +    env_dir_config_rec *new =
  +    (env_dir_config_rec *) ap_palloc(p, sizeof(env_dir_config_rec));
   
       table *new_table;
       table_entry *elts;
  @@ -166,11 +166,10 @@
       return new;
   }
   
  -static const char *add_env_module_vars_passed(cmd_parms *cmd, char 
*struct_ptr,
  +static const char *add_env_module_vars_passed(cmd_parms *cmd,
  +                                           env_dir_config_rec *sconf,
                                                 const char *arg)
   {
  -    env_server_config_rec *sconf =
  -    ap_get_module_config(cmd->server->module_config, &env_module);
       table *vars = sconf->vars;
       char *env_var;
       char *name_ptr;
  @@ -186,11 +185,10 @@
       return NULL;
   }
   
  -static const char *add_env_module_vars_set(cmd_parms *cmd, char *struct_ptr,
  +static const char *add_env_module_vars_set(cmd_parms *cmd,
  +                                        env_dir_config_rec *sconf,
                                              const char *arg)
   {
  -    env_server_config_rec *sconf =
  -    ap_get_module_config(cmd->server->module_config, &env_module);
       table *vars = sconf->vars;
       char *name, *value;
   
  @@ -212,11 +210,10 @@
       return NULL;
   }
   
  -static const char *add_env_module_vars_unset(cmd_parms *cmd, char 
*struct_ptr,
  +static const char *add_env_module_vars_unset(cmd_parms *cmd,
  +                                          env_dir_config_rec *sconf,
                                                char *arg)
   {
  -    env_server_config_rec *sconf =
  -    ap_get_module_config(cmd->server->module_config, &env_module);
       sconf->unsetenv = sconf->unsetenv ?
           ap_pstrcat(cmd->pool, sconf->unsetenv, " ", arg, NULL) :
            arg;
  @@ -226,19 +223,18 @@
   static const command_rec env_module_cmds[] =
   {
       {"PassEnv", add_env_module_vars_passed, NULL,
  -     RSRC_CONF, RAW_ARGS, "a list of environment variables to pass to CGI."},
  +     OR_FILEINFO, RAW_ARGS, "a list of environment variables to pass to 
CGI."},
       {"SetEnv", add_env_module_vars_set, NULL,
  -     RSRC_CONF, RAW_ARGS, "an environment variable name and a value to pass 
to CGI."},
  +     OR_FILEINFO, RAW_ARGS, "an environment variable name and a value to 
pass to CGI."},
       {"UnsetEnv", add_env_module_vars_unset, NULL,
  -     RSRC_CONF, RAW_ARGS, "a list of variables to remove from the CGI 
environment."},
  +     OR_FILEINFO, RAW_ARGS, "a list of variables to remove from the CGI 
environment."},
       {NULL},
   };
   
   static int fixup_env_module(request_rec *r)
   {
       table *e = r->subprocess_env;
  -    server_rec *s = r->server;
  -    env_server_config_rec *sconf = ap_get_module_config(s->module_config,
  +    env_dir_config_rec *sconf = ap_get_module_config(r->per_dir_config,
                                                        &env_module);
       table *vars = sconf->vars;
   
  @@ -254,10 +250,10 @@
   {
       STANDARD_MODULE_STUFF,
       NULL,                       /* initializer */
  -    NULL,                       /* dir config creater */
  -    NULL,                       /* dir merger --- default is to override */
  -    create_env_server_config,   /* server config */
  -    merge_env_server_configs,   /* merge server configs */
  +    create_env_dir_config,      /* dir config creater */
  +    merge_env_dir_configs,      /* dir merger --- default is to override */
  +    NULL,                       /* server config */
  +    NULL,                       /* merge server configs */
       env_module_cmds,            /* command table */
       NULL,                       /* handlers */
       NULL,                       /* filename translation */
  
  
  

Reply via email to