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/27 06:26:54 UTC
cvs commit: modperl-2.0/src/modules/perl modperl_cmd.c modperl_cmd.h mod_perl.c mod_perl.h
dougm 2002/08/26 21:26:54
Modified: src/modules/perl modperl_cmd.c modperl_cmd.h mod_perl.c
mod_perl.h
Log:
add LoadModule directive to support directive handlers
Revision Changes Path
1.26 +27 -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.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- modperl_cmd.c 25 Aug 2002 23:04:55 -0000 1.25
+++ modperl_cmd.c 27 Aug 2002 04:26:54 -0000 1.26
@@ -297,6 +297,33 @@
return NULL;
}
+/*
+ * XXX: the name of this directive may or may not stay.
+ * need a way to note that a module has config directives.
+ * don't want to start mod_perl when we see a non-special PerlModule.
+ */
+MP_CMD_SRV_DECLARE(load_module)
+{
+ apr_pool_t *p = parms->pool;
+ server_rec *s = parms->server;
+ const char *errmsg;
+
+ if (!strstr(arg, "::")) {
+ return DECLINE_CMD; /* let mod_so handle it */
+ }
+
+ MP_TRACE_d(MP_FUNC, "LoadModule %s\n", arg);
+
+ /* we must init earlier than normal */
+ modperl_run(p, s);
+
+ if ((errmsg = modperl_cmd_modules(parms, mconfig, arg))) {
+ return errmsg;
+ }
+
+ return modperl_module_add(p, s, arg);
+}
+
#ifdef MP_COMPAT_1X
MP_CMD_SRV_DECLARE_FLAG(taint_check)
1.18 +1 -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.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- modperl_cmd.h 19 Nov 2001 00:07:28 -0000 1.17
+++ modperl_cmd.h 27 Aug 2002 04:26:54 -0000 1.18
@@ -27,6 +27,7 @@
MP_CMD_SRV_DECLARE(options);
MP_CMD_SRV_DECLARE(init_handlers);
MP_CMD_SRV_DECLARE(perl);
+MP_CMD_SRV_DECLARE(load_module);
#ifdef MP_COMPAT_1X
1.134 +1 -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.133
retrieving revision 1.134
diff -u -r1.133 -r1.134
--- mod_perl.c 24 Aug 2002 18:03:03 -0000 1.133
+++ mod_perl.c 27 Aug 2002 04:26:54 -0000 1.134
@@ -583,6 +583,7 @@
MP_CMD_DIR_TAKE2("PerlSetEnv", set_env, "PerlSetEnv"),
MP_CMD_SRV_TAKE1("PerlPassEnv", pass_env, "PerlPassEnv"),
MP_CMD_SRV_RAW_ARGS("<Perl", perl, "NOT YET IMPLEMENTED"),
+ MP_CMD_SRV_TAKE1("LoadModule", load_module, "A Perl module"),
#ifdef MP_TRACE
MP_CMD_SRV_TAKE1("PerlTrace", trace, "Trace level"),
#endif
1.51 +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.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- mod_perl.h 24 Aug 2002 18:03:03 -0000 1.50
+++ mod_perl.h 27 Aug 2002 04:26:54 -0000 1.51
@@ -66,6 +66,7 @@
#include "modperl_env.h"
#include "modperl_cgi.h"
#include "modperl_perl.h"
+#include "modperl_module.h"
void modperl_init(server_rec *s, apr_pool_t *p);
int modperl_run(apr_pool_t *p, server_rec *s);