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 2001/09/28 01:29:51 UTC
cvs commit: modperl-2.0/src/modules/perl mod_perl.c modperl_config.c modperl_env.c modperl_env.h modperl_options.c modperl_types.h
dougm 01/09/27 16:29:51
Modified: src/modules/perl mod_perl.c modperl_config.c modperl_env.c
modperl_env.h modperl_options.c modperl_types.h
Log:
change apr_pool_cleanup_register() to use apr_pool_cleanup_null for child cleanup, rather than NULL which will segv if apache forks (e.g. mod_cgi)
Revision Changes Path
1.78 +2 -1 modperl-2.0/src/modules/perl/mod_perl.c
Index: mod_perl.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -r1.77 -r1.78
--- mod_perl.c 2001/09/27 19:41:44 1.77
+++ mod_perl.c 2001/09/27 23:29:51 1.78
@@ -291,7 +291,8 @@
apr_pool_t *ptemp, server_rec *s)
{
modperl_sys_init();
- apr_pool_cleanup_register(pconf, NULL, modperl_sys_term, NULL);
+ apr_pool_cleanup_register(pconf, NULL,
+ modperl_sys_term, apr_pool_cleanup_null);
modperl_init_globals(s, pconf);
modperl_init(s, pconf);
}
1.39 +0 -2 modperl-2.0/src/modules/perl/modperl_config.c
Index: modperl_config.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_config.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- modperl_config.c 2001/09/27 19:55:47 1.38
+++ modperl_config.c 2001/09/27 23:29:51 1.39
@@ -9,8 +9,6 @@
dcfg->interp_scope = MP_INTERP_SCOPE_UNDEF;
#endif
- MpDirSETUP_ENV_On(dcfg); /* %ENV setup on by default */
-
return dcfg;
}
1.6 +5 -2 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.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- modperl_env.c 2001/09/27 21:19:42 1.5
+++ modperl_env.c 2001/09/27 23:29:51 1.6
@@ -36,7 +36,7 @@
{ NULL }
};
-static void modperl_env_request_populate(pTHX_ request_rec *r)
+void modperl_env_request_populate(pTHX_ request_rec *r)
{
HV *hv = GvHV(PL_envgv);
int i;
@@ -102,11 +102,14 @@
}
#endif
+#define MpDirSeenSETUP_ENV(dcfg) \
+ (dcfg->flags->opts_seen & MpDir_f_SETUP_ENV)
+
void modperl_env_request_tie(pTHX_ request_rec *r)
{
MP_dDCFG;
- if (MpDirSETUP_ENV(dcfg)) {
+ if (MpDirSETUP_ENV(dcfg) || !MpDirSeenSETUP_ENV(dcfg)) {
modperl_env_request_populate(aTHX_ r);
}
1.2 +3 -0 modperl-2.0/src/modules/perl/modperl_env.h
Index: modperl_env.h
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_env.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- modperl_env.h 2001/05/08 04:10:41 1.1
+++ modperl_env.h 2001/09/27 23:29:51 1.2
@@ -8,7 +8,10 @@
#define modperl_env_tie(mg_flags) \
SvFLAGS((SV*)GvHV(PL_envgv)) |= mg_flags
+void modperl_env_request_populate(pTHX_ request_rec *r);
+
void modperl_env_request_tie(pTHX_ request_rec *r);
+
void modperl_env_request_untie(pTHX_ request_rec *r);
#endif /* MODPERL_ENV_H */
1.8 +4 -0 modperl-2.0/src/modules/perl/modperl_options.c
Index: modperl_options.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_options.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- modperl_options.c 2001/05/09 17:04:31 1.7
+++ modperl_options.c 2001/09/27 23:29:51 1.8
@@ -82,6 +82,8 @@
}
#endif
+ o->opts_seen |= opt;
+
if (action == '-') {
o->opts_remove |= opt;
o->opts_add &= ~opt;
@@ -125,6 +127,8 @@
conf->opts_add = add->opts_add;
conf->opts_remove = add->opts_remove;
}
+
+ conf->opts_seen |= add->opts_seen;
return conf;
}
1.48 +1 -0 modperl-2.0/src/modules/perl/modperl_types.h
Index: modperl_types.h
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_types.h,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- modperl_types.h 2001/09/27 19:04:38 1.47
+++ modperl_types.h 2001/09/27 23:29:51 1.48
@@ -98,6 +98,7 @@
modperl_opts_t opts_add;
modperl_opts_t opts_remove;
modperl_opts_t opts_override;
+ modperl_opts_t opts_seen;
int unset;
} modperl_options_t;