sbekman 01/08/08 00:02:41
Modified:src/modules/perl mod_perl.c modperl_cmd.c modperl_cmd.h
modperl_config.c modperl_config.h modperl_util.c
modperl_util.h
todo missing_old_features.txt
Log:
* implementing PerlModule and PerlRequire configuration
directives, for the main server and virtual hosts
* adding a todo item: .htaccess support for PerlModule and PerlRequire is
missing
Revision ChangesPath
1.61 +16 -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.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- mod_perl.c2001/07/15 22:33:48 1.60
+++ mod_perl.c2001/08/08 07:02:41 1.61
@@ -74,6 +74,13 @@
);
#endif
+if (!modperl_config_apply_PerlModule(s, scfg, perl, p)){
+exit(1);
+}
+if (!modperl_config_apply_PerlRequire(s, scfg, perl, p)){
+exit(1);
+}
+
#ifndef USE_ITHREADS
cdata = modperl_cleanup_data_new(p, (void*)perl);
apr_pool_cleanup_register(p, cdata,
@@ -126,6 +133,13 @@
modperl_server_desc(s, p));
}
+if (!modperl_config_apply_PerlModule(s, scfg, perl, p)){
+exit(1);
+}
+if (!modperl_config_apply_PerlRequire(s, scfg, perl, p)){
+exit(1);
+}
+
#ifdef USE_ITHREADS
if (!MpSrvENABLED(scfg)) {
@@ -355,6 +369,8 @@
static const command_rec modperl_cmds[] = {
MP_CMD_SRV_ITERATE(PerlSwitches, switches, Perl Switches),
+MP_CMD_SRV_ITERATE(PerlModule, modules, PerlModule),
+MP_CMD_SRV_ITERATE(PerlRequire, requires, PerlRequire),
MP_CMD_DIR_ITERATE(PerlOptions, options, Perl Options),
#ifdef MP_TRACE
MP_CMD_SRV_TAKE1(PerlTrace, trace, Trace level),
1.5 +19 -0 modperl-2.0/src/modules/perl/modperl_cmd.c
Index: modperl_cmd.c
===
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- modperl_cmd.c 2001/04/06 02:18:15 1.4
+++ modperl_cmd.c 2001/08/08 07:02:41 1.5
@@ -39,7 +39,26 @@
MP_CMD_SRV_DECLARE(switches)
{
MP_dSCFG(parms-server);
+MP_TRACE_d(MP_FUNC, arg = %s\n, arg);
modperl_config_srv_argv_push(arg);
+return NULL;
+}
+
+MP_CMD_SRV_DECLARE(modules)
+{
+MP_dSCFG(parms-server);
+
+*(const char **)apr_array_push(scfg-PerlModule) = arg;
+MP_TRACE_d(MP_FUNC, arg = %s\n, arg);
+return NULL;
+}
+
+MP_CMD_SRV_DECLARE(requires)
+{
+MP_dSCFG(parms-server);
+
+*(const char **)apr_array_push(scfg-PerlRequire) = arg;
+MP_TRACE_d(MP_FUNC, arg = %s\n, arg);
return NULL;
}
1.5 +2 -0 modperl-2.0/src/modules/perl/modperl_cmd.h
Index: modperl_cmd.h
===
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- modperl_cmd.h 2001/04/06 02:18:15 1.4
+++ modperl_cmd.h 2001/08/08 07:02:41 1.5
@@ -10,6 +10,8 @@
void *dummy, const char *arg)
MP_CMD_SRV_DECLARE(trace);
MP_CMD_SRV_DECLARE(switches);
+MP_CMD_SRV_DECLARE(modules);
+MP_CMD_SRV_DECLARE(requires);
MP_CMD_SRV_DECLARE(options);
#ifdef USE_ITHREADS
1.33 +51 -0 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.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- modperl_config.c 2001/05/08 21:08:26 1.32
+++ modperl_config.c 2001/08/08 07:02:41 1.33
@@ -71,6 +71,9 @@
MpSrvENABLED_On(scfg); /* mod_perl enabled by default */
MpSrvHOOKS_ALL_On(scfg); /* all hooks enabled by default */
+scfg-PerlModule = apr_array_make(p, 2, sizeof(char *));
+scfg-PerlRequire = apr_array_make(p, 2, sizeof(char *));
+
scfg-argv = apr_array_make(p, 2, sizeof(char *));
modperl_config_srv_argv_push((char *)ap_server_argv0);
@@ -152,6 +155,9 @@
MP_TRACE_d(MP_FUNC, basev==0x%lx, addv==0x%lx\n,
(unsigned long)basev, (unsigned long)addv);
+merge_item(PerlModule);
+merge_item(PerlRequire);
+
merge_item(threaded_mpm);
#ifdef USE_ITHREADS
@@ -183,3 +189,48 @@
return mrg;
}
+int modperl_config_apply_PerlModule(server_rec *s,