cvs commit: modperl-2.0/xs/maps apr_functions.map modperl_functions.map
geoff 2003/12/18 10:53:50
Modified:xs/APR/Finfo APR__Finfo.h
xs/Apache/RequestRec Apache__RequestRec.h
xs/maps apr_functions.map modperl_functions.map
Log:
move r->finfo accessor function from APR::Finfo to Apache::RequestRec
Revision ChangesPath
1.2 +0 -5 modperl-2.0/xs/APR/Finfo/APR__Finfo.h
<>
1.7 +6 -0 modperl-2.0/xs/Apache/RequestRec/Apache__RequestRec.h
Index: Apache__RequestRec.h
===
RCS file: /home/cvs/modperl-2.0/xs/Apache/RequestRec/Apache__RequestRec.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Apache__RequestRec.h 14 Mar 2003 05:34:24 - 1.6
+++ Apache__RequestRec.h 18 Dec 2003 18:53:50 - 1.7
@@ -53,3 +53,9 @@
return modperl_table_get_set(aTHX_ r->subprocess_env,
key, val, TRUE);
}
+
+static MP_INLINE
+apr_finfo_t *mpxs_Apache__RequestRec_finfo(request_rec *r)
+{
+return &r->finfo;
+}
1.65 +0 -3 modperl-2.0/xs/maps/apr_functions.map
Index: apr_functions.map
===
RCS file: /home/cvs/modperl-2.0/xs/maps/apr_functions.map,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- apr_functions.map 8 Dec 2003 19:31:53 - 1.64
+++ apr_functions.map 18 Dec 2003 18:53:50 - 1.65
@@ -302,9 +302,6 @@
-apr_lstat
apr_stat
-PACKAGE=Apache::RequestRec
- mpxs_Apache__RequestRec_finfo
-
!MODULE=APR::String
apr_collapse_spaces
-apr_cpystrn
1.62 +1 -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.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- modperl_functions.map 1 Dec 2003 17:14:16 - 1.61
+++ modperl_functions.map 18 Dec 2003 18:53:50 - 1.62
@@ -15,6 +15,7 @@
mpxs_Apache__RequestRec_content_type | | r, type=Nullsv
mpxs_Apache__RequestRec_proxyreq | | r, val=Nullsv
mpxs_Apache__RequestRec_subprocess_env | | r, key=NULL, val=Nullsv
+ mpxs_Apache__RequestRec_finfo
MODULE=Apache::RequestUtil PACKAGE=guess
mpxs_Apache__RequestRec_push_handlers
cvs commit: modperl-2.0/t/response/TestAPI show.pm
stas2003/12/18 11:04:23
Modified:t/response/TestAPI show.pm
Log:
remove a stray warning
Revision ChangesPath
1.2 +0 -2 modperl-2.0/t/response/TestAPI/show.pm
Index: show.pm
===
RCS file: /home/cvs/modperl-2.0/t/response/TestAPI/show.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -u -r1.1 -r1.2
--- show.pm 1 Dec 2003 17:14:16 - 1.1
+++ show.pm 18 Dec 2003 19:04:23 - 1.2
@@ -16,8 +16,6 @@
my $mpm = Apache::Test::config->{server}->{mpm};
-warn " trying now***";
-
ok t_cmp(qr!$mpm!i,
Apache::MPM->show(),
'Apache::MPM->show()');
cvs commit: modperl-2.0/xs/APR/Finfo APR__Finfo.h
geoff 2003/12/18 11:04:52 Removed: xs/APR/Finfo APR__Finfo.h Log: move r->finfo accessor function from APR::Finfo to Apache::RequestRec
cvs commit: modperl-2.0/todo release
gozer 2003/12/18 17:17:32
Modified:.Changes
lib/Apache PerlSections.pm
src/modules/perl modperl_cmd.c modperl_util.c modperl_util.h
t/conf extra.last.conf.in
t/directive perl.t
t/response/TestDirective perldo.pm
todo release
Added: t/conf perlsection.conf
Log:
are now evaluating code into one distinct namespace per
container, similar to ModPerl::Registry scripts. This finally gets
rid of the many problems reported with recursive perlsections and
infinite recursion.
Revision ChangesPath
1.289 +3 -0 modperl-2.0/Changes
Index: Changes
===
RCS file: /home/cvs/modperl-2.0/Changes,v
retrieving revision 1.288
retrieving revision 1.289
diff -u -r1.288 -r1.289
--- Changes 18 Dec 2003 00:43:44 - 1.288
+++ Changes 19 Dec 2003 01:17:31 - 1.289
@@ -12,6 +12,9 @@
=item 1.99_12-dev
+ are now evaluating code into one distinct namespace per
+container, similar to ModPerl::Registry scripts. [Philippe M. Chiasson]
+
Fix ModPerl::MM::WriteMakefile to use the MODPERL_CCOPTS entry from
Apache::BuildConfig, as it contains some flags added by mod_perl,
which aren't in perl_ccopts and ap_ccopts. [Stas]
1.2 +21 -16modperl-2.0/lib/Apache/PerlSections.pm
Index: PerlSections.pm
===
RCS file: /home/cvs/modperl-2.0/lib/Apache/PerlSections.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PerlSections.pm 20 Oct 2003 17:44:48 - 1.1
+++ PerlSections.pm 19 Dec 2003 01:17:31 - 1.2
@@ -13,6 +13,7 @@
use Apache::Const -compile => qw(OK);
use constant SPECIAL_NAME => 'PerlConfig';
+use constant SPECIAL_PACKAGE => 'Apache::ReadConfig';
sub new {
my($package, @args) = @_;
@@ -54,24 +55,28 @@
sub symdump {
my($self) = @_;
-my $pack = $self->package;
-
unless ($self->{symbols}) {
-$self->{symbols} = [];
-
no strict;
-
-#XXX: Shamelessly borrowed from Devel::Symdump;
-while (my ($key, $val) = each(%{ *{"$pack\::"} })) {
-local (*ENTRY) = $val;
-if (defined $val && defined *ENTRY{SCALAR}) {
-push @{$self->{symbols}}, [$key, $ENTRY];
-}
-if (defined $val && defined *ENTRY{ARRAY}) {
-push @{$self->{symbols}}, [$key, [EMAIL PROTECTED];
-}
-if (defined $val && defined *ENTRY{HASH} && $key !~ /::/) {
-push @{$self->{symbols}}, [$key, \%ENTRY];
+
+$self->{symbols} = [];
+
+#XXX: Here would be a good place to warn about NOT using
+# Apache::ReadConfig:: directly in sections
+foreach my $pack ($self->package, $self->SPECIAL_PACKAGE) {
+#XXX: Shamelessly borrowed from Devel::Symdump;
+while (my ($key, $val) = each(%{ *{"$pack\::"} })) {
+#We don't want to pick up stashes...
+next if ($key =~ /::$/);
+local (*ENTRY) = $val;
+if (defined $val && defined *ENTRY{SCALAR}) {
+push @{$self->{symbols}}, [$key, $ENTRY];
+}
+if (defined $val && defined *ENTRY{ARRAY}) {
+push @{$self->{symbols}}, [$key, [EMAIL PROTECTED];
+}
+if (defined $val && defined *ENTRY{HASH} && $key !~ /::/) {
+push @{$self->{symbols}}, [$key, \%ENTRY];
+}
}
}
}
1.52 +22 -11modperl-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.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- modperl_cmd.c 17 Nov 2003 01:11:06 - 1.51
+++ modperl_cmd.c 19 Dec 2003 01:17:31 - 1.52
@@ -361,8 +361,11 @@
apr_table_t *options = NULL;
const char *handler_name = NULL;
modperl_handler_t *handler = NULL;
-const char *package_name = NULL;
+const char *pkg_base = NULL;
+const char *pkg_namespace = NULL;
+const char *pkg_name = NULL;
const char *line_header = NULL;
+ap_directive_t *directive = parms->directive;
int status = OK;
AV *args = Nullav;
SV *dollar_zero = Nullsv;
@@ -397,17 +400,25 @@
handler = modperl_handler_new(p, handler_name);
-if (!(package_name = apr_table_get(options, "package"))) {
-package_name = apr_pstrdup(p,
cvs commit: modperl-2.0/ModPerl-Registry/t perlrun_require.t
stas2003/12/18 18:11:35 Modified:ModPerl-Registry/t perlrun_require.t Log: cleanup and speling Revision ChangesPath 1.5 +1 -3 modperl-2.0/ModPerl-Registry/t/perlrun_require.t Index: perlrun_require.t === RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/t/perlrun_require.t,v retrieving revision 1.4 retrieving revision 1.5 diff -u -u -r1.4 -r1.5 --- perlrun_require.t 22 Nov 2003 07:38:48 - 1.4 +++ perlrun_require.t 19 Dec 2003 02:11:35 - 1.5 @@ -5,8 +5,6 @@ use Apache::TestUtil; use Apache::TestRequest qw(GET); -# XXX: use the same server setup to test - plan tests => 2; my $url = "/same_interp/perlrun/perlrun_require.pl"; @@ -19,7 +17,7 @@ !defined($res), "1", $res, -"PerlRun requiering and external lib with subs", +"PerlRun requiring an external lib with subs", ); }
cvs commit: modperl-2.0 Changes
stas2003/12/18 18:25:43
Modified:ModPerl-Registry/lib/ModPerl RegistryCooker.pm PerlRun.pm
.Changes
Log:
Restore a proper behavior of all Registry handlers, but PerlRun, not
to reset %INC to forget any .pl files required during the script's
execution.
Revision ChangesPath
1.39 +25 -6 modperl-2.0/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm
Index: RegistryCooker.pm
===
RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -u -r1.38 -r1.39
--- RegistryCooker.pm 23 Nov 2003 21:26:01 - 1.38
+++ RegistryCooker.pm 19 Dec 2003 02:25:43 - 1.39
@@ -177,7 +177,10 @@
my $cv = \&{"$package\::handler"};
-my %orig_inc = %INC;
+my %orig_inc;
+if ($self->should_reset_inc_hash) {
+%orig_inc = %INC;
+}
{ # run the code and preserve warnings setup when it's done
no warnings;
@@ -185,11 +188,16 @@
ModPerl::Global::special_list_call(END => $package);
}
-# %INC cleanup in case .pl files do not declare package ...;
-for (keys %INC) {
-next if $orig_inc{$_};
-next if /\.pm$/;
-delete $INC{$_};
+if ($self->should_reset_inc_hash) {
+# to avoid the bite of require'ing a file with no package delaration
+# Apache::PerlRun in mod_perl 1.15_01 started to localize %INC
+# later on it has been adjusted to preserve loaded .pm files,
+# which presumably contained the package declaration
+for (keys %INC) {
+next if $orig_inc{$_};
+next if /\.pm$/;
+delete $INC{$_};
+}
}
$self->flush_namespace;
@@ -457,6 +465,17 @@
sub should_compile_once {
not shift->is_cached;
}
+
+#
+# func: should_reset_inc_hash
+# dflt: FALSE
+# desc: decide whether to localize %INC for required .pl files from the script
+# args: $self - registry blessed object
+# rtrn: TRUE if should reset
+# FALSE otherwise
+#
+
+*should_reset_inc_hash = \&FALSE;
#
# func: flush_namespace
1.8 +1 -0 modperl-2.0/ModPerl-Registry/lib/ModPerl/PerlRun.pm
Index: PerlRun.pm
===
RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/lib/ModPerl/PerlRun.pm,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -u -r1.7 -r1.8
--- PerlRun.pm23 Nov 2003 21:26:01 - 1.7
+++ PerlRun.pm19 Dec 2003 02:25:43 - 1.8
@@ -42,6 +42,7 @@
get_mark_line => 'get_mark_line',
compile => 'compile',
error_check => 'error_check',
+should_reset_inc_hash => 'TRUE',
strip_end_data_segment => 'strip_end_data_segment',
convert_script_to_compiled_handler => 'convert_script_to_compiled_handler',
);
1.290 +4 -0 modperl-2.0/Changes
Index: Changes
===
RCS file: /home/cvs/modperl-2.0/Changes,v
retrieving revision 1.289
retrieving revision 1.290
diff -u -u -r1.289 -r1.290
--- Changes 19 Dec 2003 01:17:31 - 1.289
+++ Changes 19 Dec 2003 02:25:43 - 1.290
@@ -12,6 +12,10 @@
=item 1.99_12-dev
+Restore a proper behavior of all Registry handlers, but PerlRun, not
+to reset %INC to forget any .pl files required during the script's
+execution. [Stas]
+
are now evaluating code into one distinct namespace per
container, similar to ModPerl::Registry scripts. [Philippe M. Chiasson]
cvs commit: modperl-2.0 Changes
stas2003/12/18 18:40:43
Modified:lib/Apache compat.pm
t/response/TestAPI uri.pm
t/response/TestCompat apache_uri.pm
.Changes
Log:
APR::URI::unparse joins the crowd of the overridable compat functions
this allows us to get rid of forcing the reloading of compat and real packages in
the tests
Revision ChangesPath
1.93 +20 -16modperl-2.0/lib/Apache/compat.pm
Index: compat.pm
===
RCS file: /home/cvs/modperl-2.0/lib/Apache/compat.pm,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -u -r1.92 -r1.93
--- compat.pm 17 Dec 2003 19:59:47 - 1.92
+++ compat.pm 19 Dec 2003 02:40:42 - 1.93
@@ -119,6 +119,26 @@
}
EOI
+'APR::URI::unparse' => <<'EOI',
+{
+require APR::URI;
+my $orig_sub = *APR::URI::unparse{CODE};
+*APR::URI::unparse = sub {
+my($uri, $flags) = @_;
+
+if (defined $uri->hostname && !defined $uri->scheme) {
+# we do this only for back compat, the new APR::URI is
+# protocol-agnostic and doesn't fallback to 'http' when the
+# scheme is not provided
+$uri->scheme('http');
+}
+
+$orig_sub->(@_);
+};
+$orig_sub;
+}
+EOI
+
);
my %overridden_mp2_api = ();
@@ -659,22 +679,6 @@
$uri ||= $r->construct_url;
APR::URI->parse($r->pool, $uri);
-}
-
-{
-my $sub = *APR::URI::unparse{CODE};
-*APR::URI::unparse = sub {
-my($uri, $flags) = @_;
-
-if (defined $uri->hostname && !defined $uri->scheme) {
-# we do this only for back compat, the new APR::URI is
-# protocol-agnostic and doesn't fallback to 'http' when the
-# scheme is not provided
-$uri->scheme('http');
-}
-
-$sub->(@_);
-};
}
package Apache::Table;
1.13 +0 -8 modperl-2.0/t/response/TestAPI/uri.pm
Index: uri.pm
===
RCS file: /home/cvs/modperl-2.0/t/response/TestAPI/uri.pm,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -u -r1.12 -r1.13
--- uri.pm3 Oct 2003 00:49:31 - 1.12
+++ uri.pm19 Dec 2003 02:40:43 - 1.13
@@ -19,14 +19,6 @@
sub handler {
my $r = shift;
-# since Apache::compat redefines APR::URI::unparse and the test for
-# backcompat Apache::URI forces redefinition of APR::URI::unparse
-# (to get the right behavior during the test),
-# we need to force reload of APR::URI
-delete $INC{"APR/URI.pm"};
-no warnings 'redefine';
-require APR::URI;
-
plan $r, tests => 15;
$r->args('query');
1.3 +2 -9 modperl-2.0/t/response/TestCompat/apache_uri.pm
Index: apache_uri.pm
===
RCS file: /home/cvs/modperl-2.0/t/response/TestCompat/apache_uri.pm,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -u -r1.2 -r1.3
--- apache_uri.pm 10 Mar 2003 01:25:26 - 1.2
+++ apache_uri.pm 19 Dec 2003 02:40:43 - 1.3
@@ -13,9 +13,6 @@
use Apache::compat ();
use Apache::Constants qw(OK);
-
-
-
sub handler {
my $r = shift;
@@ -39,12 +36,7 @@
#}
{
-# since Apache::compat redefines APR::URI::unparse and the test for
-# real APR::URI forces reload of APR::URI (to get the right behavior),
-# we need to force reload of Apache::compat
-delete $INC{"Apache/compat.pm"};
-require Apache::compat;
-
+Apache::compat::override_mp2_api('APR::URI::unparse');
# test the segfault in apr < 0.9.2 (fixed on mod_perl side)
# passing only the /path
my $parsed = $r->parsed_uri;
@@ -53,6 +45,7 @@
$parsed->port($r->get_server_port);
#$parsed->scheme('http'); # compat defaults to 'http' like apache-1.3 did
ok t_cmp($r->construct_url, $parsed->unparse);
+Apache::compat::restore_mp2_api('APR::URI::unparse');
}
OK;
1.291 +3 -3 modperl-2.0/Changes
Index: Changes
===
RCS file: /home/cvs/modperl-2.0/Changes,v
retrieving revision 1.290
retrieving revision 1.291
diff -u -u -r1.290 -r1.291
--- Changes 19 Dec 2003 02:25:43 - 1.290
+++ Changes 19 Dec 2003 02:40:43 - 1.291
@@ -27,9 +27,9 @@
Apache::Connection::remote_addr to the Apache::compat overridable
functions. [Stas]
-Apache::compat's implementation of Apache::RequestRec::finfo and
-Apache::RequestRec::notes is now overridable and not enabled by
-default. [St
cvs commit: modperl-2.0/ModPerl-Registry/lib/ModPerl RegistryCooker.pm
stas2003/12/18 22:32:28 Modified:ModPerl-Registry/lib/ModPerl RegistryCooker.pm Log: remove devel kraft Revision ChangesPath 1.40 +0 -3 modperl-2.0/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm Index: RegistryCooker.pm === RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm,v retrieving revision 1.39 retrieving revision 1.40 diff -u -u -r1.39 -r1.40 --- RegistryCooker.pm 19 Dec 2003 02:25:43 - 1.39 +++ RegistryCooker.pm 19 Dec 2003 06:32:28 - 1.40 @@ -10,9 +10,6 @@ use strict; use warnings FATAL => 'all'; -# we try to develop so we reload ourselves without die'ing on the warning -no warnings qw(redefine); # XXX, this should go away in production! - our $VERSION = '1.99'; use Apache::Response ();
