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