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/08/24 18:02:40 UTC
cvs commit: modperl-2.0/src/modules/perl mod_perl.c mod_perl.h
dougm 2002/08/24 09:02:40
Modified: src/modules/perl mod_perl.c mod_perl.h
Log:
add modperl_run() function for things that need to init modperl before
the post_config phase, e.g. <Perl> sections and directive handlers.
Revision Changes Path
1.132 +20 -0 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.131
retrieving revision 1.132
diff -u -r1.131 -r1.132
--- mod_perl.c 11 Jul 2002 02:06:11 -0000 1.131
+++ mod_perl.c 24 Aug 2002 16:02:39 -0000 1.132
@@ -367,9 +367,15 @@
return APR_SUCCESS;
}
+static int MP_init_done = 0;
+
int modperl_hook_init(apr_pool_t *pconf, apr_pool_t *plog,
apr_pool_t *ptemp, server_rec *s)
{
+ if (MP_init_done++ > 0) {
+ return OK;
+ }
+
apr_pool_create(&server_pool, pconf);
modperl_sys_init();
@@ -379,6 +385,20 @@
modperl_init(s, pconf);
return OK;
+}
+
+/*
+ * if we need to init earlier than post_config,
+ * e.g. <Perl> sections or directive handlers.
+ */
+/*
+ * XXX: this probably won't work well if called from a
+ * vhost rather than the base config if modperl_hook_init
+ * hasn't been run first from the base config.
+ */
+int modperl_run(apr_pool_t *p, server_rec *s)
+{
+ return modperl_hook_init(p, NULL, NULL, s);
}
int modperl_hook_pre_config(apr_pool_t *p, apr_pool_t *plog,
1.49 +1 -0 modperl-2.0/src/modules/perl/mod_perl.h
Index: mod_perl.h
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.h,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- mod_perl.h 21 Jun 2002 00:05:49 -0000 1.48
+++ mod_perl.h 24 Aug 2002 16:02:39 -0000 1.49
@@ -68,6 +68,7 @@
#include "modperl_perl.h"
void modperl_init(server_rec *s, apr_pool_t *p);
+int modperl_run(apr_pool_t *p, server_rec *s);
int modperl_hook_init(apr_pool_t *pconf, apr_pool_t *plog,
apr_pool_t *ptemp, server_rec *s);
int modperl_hook_pre_config(apr_pool_t *p, apr_pool_t *plog,