geoff 2003/05/30 05:55:15
Modified: src/modules/perl modperl_module.c modperl_types.h t/response/TestDirective perlloadmodule.pm xs/maps modperl_functions.map xs/tables/current/Apache StructureTable.pm xs/tables/current/ModPerl FunctionTable.pm Log: implement $parms->info. directive handlers should now be complete. Submitted by: geoff Reviewed by: stas Revision Changes Path 1.14 +1 -7 modperl-2.0/src/modules/perl/modperl_module.c Index: modperl_module.c =================================================================== RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_module.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- modperl_module.c 12 May 2003 13:00:15 -0000 1.13 +++ modperl_module.c 30 May 2003 12:55:14 -0000 1.14 @@ -13,12 +13,6 @@ modperl_module_info_t *minfo; } modperl_module_cfg_t; -typedef struct { - module *modp; - const char *cmd_data; - const char *func_name; -} modperl_module_cmd_data_t; - #define MP_MODULE_INFO(modp) \ (modperl_module_info_t *)modp->dynamic_load_handle @@ -711,7 +705,7 @@ cmd->cmd_data = info; /* no default if undefined */ - if (!(errmsg = modperl_module_cmd_fetch(aTHX_ obj, "data", &val))) { + if (!(errmsg = modperl_module_cmd_fetch(aTHX_ obj, "cmd_data", &val))) { info->cmd_data = apr_pstrdup(p, SvPV(val, len)); } 1.67 +6 -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.66 retrieving revision 1.67 diff -u -r1.66 -r1.67 --- modperl_types.h 17 Apr 2003 08:04:47 -0000 1.66 +++ modperl_types.h 30 May 2003 12:55:14 -0000 1.67 @@ -242,4 +242,10 @@ char *path_info; } modperl_uri_t; +typedef struct { + module *modp; + const char *cmd_data; + const char *func_name; +} modperl_module_cmd_data_t; + #endif /* MODPERL_TYPES_H */ 1.3 +9 -1 modperl-2.0/t/response/TestDirective/perlloadmodule.pm Index: perlloadmodule.pm =================================================================== RCS file: /home/cvs/modperl-2.0/t/response/TestDirective/perlloadmodule.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- perlloadmodule.pm 13 Dec 2002 10:06:55 -0000 1.2 +++ perlloadmodule.pm 30 May 2003 12:55:14 -0000 1.3 @@ -23,6 +23,7 @@ }, { name => 'MyOtherTest', + cmd_data => 'some info', }, { name => 'ServerTest', @@ -72,11 +73,13 @@ sub MyTest { my($self, $parms, @args) = @_; $self->{MyTest} = [EMAIL PROTECTED]; + $self->{MyTestInfo} = $parms->info; } sub MyOtherTest { my($self, $parms, $arg) = @_; $self->{MyOtherTest} = $arg; + $self->{MyOtherTestInfo} = $parms->info; } sub ServerTest { @@ -97,7 +100,7 @@ my $dir_cfg = $self->get_config($s, $r->per_dir_config); my $srv_cfg = $self->get_config($s); - plan $r, tests => 7; + plan $r, tests => 9; t_debug("per-dir config:", $dir_cfg); t_debug("per-srv config:", $srv_cfg); @@ -116,8 +119,13 @@ ok t_cmp('value', $dir_cfg->{MyOtherTest}, 'MyOtherTest value'); + ok t_cmp('some info', $dir_cfg->{MyOtherTestInfo}, + 'MyOtherTest cmd_data'); + ok t_cmp(['one', 'two'], $dir_cfg->{MyTest}, 'MyTest one two'); + + ok ! $dir_cfg->{MyTestInfo}; ok t_cmp('per-server', $srv_cfg->{ServerTest}); 1.57 +2 -0 modperl-2.0/xs/maps/modperl_functions.map Index: modperl_functions.map =================================================================== RCS file: /home/cvs/modperl-2.0/xs/maps/modperl_functions.map,v retrieving revision 1.56 retrieving revision 1.57 diff -u -r1.56 -r1.57 --- modperl_functions.map 1 Apr 2003 05:20:50 -0000 1.56 +++ modperl_functions.map 30 May 2003 12:55:14 -0000 1.57 @@ -130,3 +130,5 @@ mpxs_Apache__Directive_as_hash Apache__Directive_lookup | MPXS_ | ... +MODULE=Apache::CmdParms + mpxs_Apache__CmdParms_info 1.36 +0 -4 modperl-2.0/xs/tables/current/Apache/StructureTable.pm Index: StructureTable.pm =================================================================== RCS file: /home/cvs/modperl-2.0/xs/tables/current/Apache/StructureTable.pm,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- StructureTable.pm 24 Aug 2002 17:14:40 -0000 1.35 +++ StructureTable.pm 30 May 2003 12:55:14 -0000 1.36 @@ -2499,10 +2499,6 @@ 'type' => 'cmd_parms', 'elts' => [ { - 'type' => 'void *', - 'name' => 'info' - }, - { 'type' => 'int', 'name' => 'override' }, 1.115 +18 -0 modperl-2.0/xs/tables/current/ModPerl/FunctionTable.pm Index: FunctionTable.pm =================================================================== RCS file: /home/cvs/modperl-2.0/xs/tables/current/ModPerl/FunctionTable.pm,v retrieving revision 1.114 retrieving revision 1.115 diff -u -r1.114 -r1.115 --- FunctionTable.pm 12 May 2003 13:00:15 -0000 1.114 +++ FunctionTable.pm 30 May 2003 12:55:15 -0000 1.115 @@ -6641,6 +6641,24 @@ } ] }, + { + 'return_type' => 'SV *', + 'name' => 'mpxs_Apache__CmdParms_info', + 'attr' => [ + 'static', + '__inline__' + ], + 'args' => [ + { + 'type' => 'PerlInterpreter *', + 'name' => 'my_perl' + }, + { + 'type' => 'cmd_parms *', + 'name' => 'cmd_parms' + } + ] + }, ];