dougm 01/03/15 23:30:25
Modified: lib/ModPerl Code.pm
src/modules/perl modperl_config.c modperl_filter.c
modperl_handler.c modperl_mgv.c modperl_types.h
Log:
no need for modperl_{files,process,connection}_config_t
Revision Changes Path
1.50 +6 -4 modperl-2.0/lib/ModPerl/Code.pm
Index: Code.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/lib/ModPerl/Code.pm,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- Code.pm 2001/03/16 06:32:14 1.49
+++ Code.pm 2001/03/16 07:30:21 1.50
@@ -71,8 +71,7 @@
);
for my $class (qw(Process Connection Files)) {
- my $lc_class = lc $class;
- $directive_proto{$class}->{cfg}->{name} = "scfg->${lc_class}_cfg";
+ $directive_proto{$class}->{cfg}->{name} = 'scfg';
$directive_proto{$class}->{cfg}->{get} = $scfg_get;
for (qw(args scope)) {
@@ -82,6 +81,9 @@
while (my($k,$v) = each %directive_proto) {
$directive_proto{$k}->{ret} = 'const char *';
+ my $handlers = join '_', 'handlers', canon_lc($k);
+ $directive_proto{$k}->{handlers} =
+ join '->', $directive_proto{$k}->{cfg}->{name}, $handlers;
}
#XXX: allow disabling of PerDir hooks on a PerDir basis
@@ -144,7 +146,7 @@
my $handler_type = canon_define('HANDLER_TYPE', $class);
print $h_fh "\n#define ",
- canon_define($class, 'num_handlers'), " $n\n\n";
+ canon_define('HANDLER_NUM', $class), " $n\n\n";
print $h_fh "#define $handler_type $type\n\n";
@@ -271,7 +273,7 @@
my $protostr = canon_proto($prototype, $name);
my $flag = 'MpSrv' . canon_uc($h);
my $ix = $self->{handler_index}->{$class}->[$i++];
- my $av = "$prototype->{cfg}->{name}->handlers[$ix]";
+ my $av = "$prototype->{handlers} [$ix]";
print $h_fh "$protostr;\n";
1.27 +13 -22 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.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- modperl_config.c 2001/03/16 05:52:29 1.26
+++ modperl_config.c 2001/03/16 07:30:22 1.27
@@ -32,8 +32,8 @@
{ /* XXX: should do a proper merge of the arrays */
/* XXX: and check if Perl*Handler is disabled */
int i;
- for (i=0; i<MP_PER_DIR_NUM_HANDLERS; i++) {
- merge_item(handlers[i]);
+ for (i=0; i < MP_HANDLER_NUM_PER_DIR; i++) {
+ merge_item(handlers_per_dir[i]);
}
}
@@ -63,21 +63,6 @@
modperl_config_srv_argv_push((char *)ap_server_argv0);
-#ifdef MP_CONNECTION_NUM_HANDLERS
- scfg->connection_cfg = (modperl_connection_config_t *)
- apr_pcalloc(p, sizeof(*scfg->connection_cfg));
-#endif
-
-#ifdef MP_FILES_NUM_HANDLERS
- scfg->files_cfg = (modperl_files_config_t *)
- apr_pcalloc(p, sizeof(*scfg->files_cfg));
-#endif
-
-#ifdef MP_PROCESS_NUM_HANDLERS
- scfg->process_cfg = (modperl_process_config_t *)
- apr_pcalloc(p, sizeof(*scfg->process_cfg));
-#endif
-
MP_TRACE_d(MP_FUNC, "0x%lx\n", (unsigned long)scfg);
return scfg;
@@ -161,15 +146,21 @@
#endif
merge_item(argv);
- merge_item(files_cfg);
- merge_item(process_cfg);
- merge_item(connection_cfg);
{ /* XXX: should do a proper merge of the arrays */
/* XXX: and check if Perl*Handler is disabled */
int i;
- for (i=0; i<MP_PER_SRV_NUM_HANDLERS; i++) {
- merge_item(handlers[i]);
+ for (i=0; i < MP_HANDLER_NUM_PER_SRV; i++) {
+ merge_item(handlers_per_srv[i]);
+ }
+ for (i=0; i < MP_HANDLER_NUM_FILES; i++) {
+ merge_item(handlers_files[i]);
+ }
+ for (i=0; i < MP_HANDLER_NUM_PROCESS; i++) {
+ merge_item(handlers_process[i]);
+ }
+ for (i=0; i < MP_HANDLER_NUM_CONNECTION; i++) {
+ merge_item(handlers_connection[i]);
}
}
1.10 +1 -1 modperl-2.0/src/modules/perl/modperl_filter.c
Index: modperl_filter.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_filter.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- modperl_filter.c 2001/03/15 05:39:07 1.9
+++ modperl_filter.c 2001/03/16 07:30:22 1.10
@@ -336,7 +336,7 @@
MP_dDCFG;
MpAV *av;
- if ((av = dcfg->handlers[MP_OUTPUT_FILTER_HANDLER])) {
+ if ((av = dcfg->handlers_per_dir[MP_OUTPUT_FILTER_HANDLER])) {
modperl_handler_t **handlers = (modperl_handler_t **)av->elts;
int i;
1.4 +5 -5 modperl-2.0/src/modules/perl/modperl_handler.c
Index: modperl_handler.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_handler.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- modperl_handler.c 2001/03/16 06:41:46 1.3
+++ modperl_handler.c 2001/03/16 07:30:22 1.4
@@ -74,23 +74,23 @@
switch (type) {
case MP_HANDLER_TYPE_PER_DIR:
- av = dcfg->handlers[idx];
+ av = dcfg->handlers_per_dir[idx];
set_desc(per_dir);
break;
case MP_HANDLER_TYPE_PER_SRV:
- av = scfg->handlers[idx];
+ av = scfg->handlers_per_srv[idx];
set_desc(per_srv);
break;
case MP_HANDLER_TYPE_CONNECTION:
- av = scfg->connection_cfg->handlers[idx];
+ av = scfg->handlers_connection[idx];
set_desc(connection);
break;
case MP_HANDLER_TYPE_FILES:
- av = scfg->files_cfg->handlers[idx];
+ av = scfg->handlers_files[idx];
set_desc(files);
break;
case MP_HANDLER_TYPE_PROCESS:
- av = scfg->process_cfg->handlers[idx];
+ av = scfg->handlers_process[idx];
set_desc(process);
break;
};
1.7 +10 -10 modperl-2.0/src/modules/perl/modperl_mgv.c
Index: modperl_mgv.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_mgv.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- modperl_mgv.c 2001/03/16 05:32:35 1.6
+++ modperl_mgv.c 2001/03/16 07:30:23 1.7
@@ -384,8 +384,8 @@
return 1;
}
- for (i=0; i < MP_PER_DIR_NUM_HANDLERS; i++) {
- modperl_hash_handlers(aTHX_ p, s, dir_cfg->handlers[i], data);
+ for (i=0; i < MP_HANDLER_NUM_PER_DIR; i++) {
+ modperl_hash_handlers(aTHX_ p, s, dir_cfg->handlers_per_dir[i], data);
}
return 1;
@@ -398,24 +398,24 @@
modperl_config_srv_t *scfg = (modperl_config_srv_t *)cfg;
MP_dSCFG_dTHX;
- for (i=0; i < MP_PER_SRV_NUM_HANDLERS; i++) {
+ for (i=0; i < MP_HANDLER_NUM_PER_SRV; i++) {
modperl_hash_handlers(aTHX_ p, s,
- scfg->handlers[i], data);
+ scfg->handlers_per_srv[i], data);
}
- for (i=0; i < MP_PROCESS_NUM_HANDLERS; i++) {
+ for (i=0; i < MP_HANDLER_NUM_PROCESS; i++) {
modperl_hash_handlers(aTHX_ p, s,
- scfg->process_cfg->handlers[i], data);
+ scfg->handlers_process[i], data);
}
- for (i=0; i < MP_CONNECTION_NUM_HANDLERS; i++) {
+ for (i=0; i < MP_HANDLER_NUM_CONNECTION; i++) {
modperl_hash_handlers(aTHX_ p, s,
- scfg->connection_cfg->handlers[i], data);
+ scfg->handlers_connection[i], data);
}
- for (i=0; i < MP_FILES_NUM_HANDLERS; i++) {
+ for (i=0; i < MP_HANDLER_NUM_FILES; i++) {
modperl_hash_handlers(aTHX_ p, s,
- scfg->files_cfg->handlers[i], data);
+ scfg->handlers_files[i], data);
}
return 1;
1.28 +5 -17 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.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- modperl_types.h 2001/03/16 05:32:35 1.27
+++ modperl_types.h 2001/03/16 07:30:23 1.28
@@ -87,18 +87,6 @@
#endif /* USE_ITHREADS */
-typedef struct {
- MpAV *handlers[MP_PROCESS_NUM_HANDLERS];
-} modperl_process_config_t;
-
-typedef struct {
- MpAV *handlers[MP_CONNECTION_NUM_HANDLERS];
-} modperl_connection_config_t;
-
-typedef struct {
- MpAV *handlers[MP_FILES_NUM_HANDLERS];
-} modperl_files_config_t;
-
typedef U32 modperl_opts_t;
typedef struct {
@@ -121,10 +109,10 @@
MpHV *SetVars;
MpAV *PassEnv;
MpAV *PerlRequire, *PerlModule;
- MpAV *handlers[MP_PER_SRV_NUM_HANDLERS];
- modperl_files_config_t *files_cfg;
- modperl_process_config_t *process_cfg;
- modperl_connection_config_t *connection_cfg;
+ MpAV *handlers_per_srv[MP_HANDLER_NUM_PER_SRV];
+ MpAV *handlers_files[MP_HANDLER_NUM_FILES];
+ MpAV *handlers_process[MP_HANDLER_NUM_PROCESS];
+ MpAV *handlers_connection[MP_HANDLER_NUM_CONNECTION];
#ifdef USE_ITHREADS
modperl_interp_pool_t *mip;
modperl_tipool_config_t *interp_pool_cfg;
@@ -143,7 +131,7 @@
typedef struct {
char *location;
char *PerlDispatchHandler;
- MpAV *handlers[MP_PER_DIR_NUM_HANDLERS];
+ MpAV *handlers_per_dir[MP_HANDLER_NUM_PER_DIR];
MpHV *SetEnv;
MpHV *SetVars;
U8 flags;