You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by do...@apache.org on 2002/05/27 20:39:04 UTC

cvs commit: modperl-2.0/src/modules/perl modperl_env.c

dougm       02/05/27 11:39:03

  Modified:    src/modules/perl modperl_env.c
  Log:
  propagate scfg->SetEnv to %ENV
  
  Revision  Changes    Path
  1.21      +26 -18    modperl-2.0/src/modules/perl/modperl_env.c
  
  Index: modperl_env.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_env.c,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- modperl_env.c	19 Nov 2001 00:07:28 -0000	1.20
  +++ modperl_env.c	27 May 2002 18:39:03 -0000	1.21
  @@ -62,9 +62,34 @@
       modperl_env_tie(mg_flags);
   }
   
  +static void modperl_env_table_populate(pTHX_ apr_table_t *table)
  +{
  +    HV *hv = ENVHV;
  +    U32 mg_flags;
  +    int i;
  +    const apr_array_header_t *array;
  +    apr_table_entry_t *elts;
  +
  +    modperl_env_untie(mg_flags);
  +
  +    array = apr_table_elts(table);
  +    elts  = (apr_table_entry_t *)array->elts;
  +
  +    for (i = 0; i < array->nelts; i++) {
  +	if (!elts[i].key || !elts[i].val) {
  +            continue;
  +        }
  +        modperl_env_hv_store(aTHX_ hv, &elts[i]);
  +    }    
  +
  +    modperl_env_tie(mg_flags);
  +}
  +
   void modperl_env_configure_server(pTHX_ apr_pool_t *p, server_rec *s)
   {
       /* XXX: propagate scfg->SetEnv to environ */
  +    MP_dSCFG(s);
  +    modperl_env_table_populate(aTHX_ scfg->SetEnv);
   }
   
   #define overlay_subprocess_env(r, tab) \
  @@ -106,11 +131,6 @@
   void modperl_env_request_populate(pTHX_ request_rec *r)
   {
       MP_dRCFG;
  -    HV *hv = ENVHV;
  -    U32 mg_flags;
  -    int i;
  -    const apr_array_header_t *array;
  -    apr_table_entry_t *elts;
   
       if (MpReqSETUP_ENV(rcfg)) {
           return;
  @@ -124,19 +144,7 @@
       ap_add_common_vars(r);
       ap_add_cgi_vars(r);
   
  -    modperl_env_untie(mg_flags);
  -
  -    array = apr_table_elts(r->subprocess_env);
  -    elts  = (apr_table_entry_t *)array->elts;
  -
  -    for (i = 0; i < array->nelts; i++) {
  -	if (!elts[i].key || !elts[i].val) {
  -            continue;
  -        }
  -        modperl_env_hv_store(aTHX_ hv, &elts[i]);
  -    }    
  -
  -    modperl_env_tie(mg_flags);
  +    modperl_env_table_populate(aTHX_ r->subprocess_env);
   
   #ifdef MP_COMPAT_1X
       modperl_env_default_populate(aTHX); /* reset GATEWAY_INTERFACE */