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;