Author: gozer
Date: Wed Nov 16 15:53:01 2005
New Revision: 345151
URL: http://svn.apache.org/viewcvs?rev=345151&view=rev
Log:
Calling Apache2::ServerUtil->server in <Perl> sections now
returns the server into which the <Perl> section was defined
Modified:
perl/modperl/trunk/Changes
perl/modperl/trunk/src/modules/perl/modperl_cmd.c
perl/modperl/trunk/t/conf/extra.last.conf.in
perl/modperl/trunk/t/hooks/TestHooks/push_handlers_anon.pm
perl/modperl/trunk/t/response/TestDirective/perldo.pm
Modified: perl/modperl/trunk/Changes
URL:
http://svn.apache.org/viewcvs/perl/modperl/trunk/Changes?rev=345151&r1=345150&r2=345151&view=diff
==============================================================================
--- perl/modperl/trunk/Changes (original)
+++ perl/modperl/trunk/Changes Wed Nov 16 15:53:01 2005
@@ -12,6 +12,10 @@
=item 2.0.3-dev
+Calling Apache2::ServerUtil->server in <Perl> sections now
+returns the server into which the <Perl> section was defined
+[Gozer]
+
Require B::Size and B::TerseSize v0.06 for Apache2::Status
options StatusTerse and StatusTerseSize which has now been
updated to support the new mod_perl2 api post RC5.
Modified: perl/modperl/trunk/src/modules/perl/modperl_cmd.c
URL:
http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_cmd.c?rev=345151&r1=345150&r2=345151&view=diff
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_cmd.c (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_cmd.c Wed Nov 16 15:53:01 2005
@@ -550,6 +550,7 @@
}
{
+ server_rec *old_s = modperl_global_get_server_rec();
SV *code = newSVpv(arg, 0);
GV *gv = gv_fetchpv("0", TRUE, SVt_PV);
ENTER;SAVETMPS;
@@ -557,9 +558,11 @@
#if PERL_REVISION == 5 && PERL_VERSION >= 9
TAINT_NOT; /* XXX: temp workaround, see my p5p post */
#endif
+ modperl_global_set_server_rec(s);
sv_setpv_mg(GvSV(gv), directive->filename);
eval_sv(code, G_SCALAR|G_KEEPERR);
SvREFCNT_dec(code);
+ modperl_global_set_server_rec(old_s);
modperl_env_sync_srv_env_hash2table(aTHX_ p, scfg);
modperl_env_sync_dir_env_hash2table(aTHX_ p, dcfg);
FREETMPS;LEAVE;
Modified: perl/modperl/trunk/t/conf/extra.last.conf.in
URL:
http://svn.apache.org/viewcvs/perl/modperl/trunk/t/conf/extra.last.conf.in?rev=345151&r1=345150&r2=345151&view=diff
==============================================================================
--- perl/modperl/trunk/t/conf/extra.last.conf.in (original)
+++ perl/modperl/trunk/t/conf/extra.last.conf.in Wed Nov 16 15:53:01 2005
@@ -63,6 +63,16 @@
}
</Perl>
+<Perl >
+$TestDirective::perl::base_server = Apache2::ServerUtil->server;
+</Perl>
+
+<VirtualHost perlsections>
+ <Perl >
+ $TestDirective::perl::vhost_server = Apache2::ServerUtil->server;
+ </Perl>
+</VirtualHost>
+
### --------------------------------- ###
Perl $TestDirective::perl::worked="yes";
Modified: perl/modperl/trunk/t/hooks/TestHooks/push_handlers_anon.pm
URL:
http://svn.apache.org/viewcvs/perl/modperl/trunk/t/hooks/TestHooks/push_handlers_anon.pm?rev=345151&r1=345150&r2=345151&view=diff
==============================================================================
--- perl/modperl/trunk/t/hooks/TestHooks/push_handlers_anon.pm (original)
+++ perl/modperl/trunk/t/hooks/TestHooks/push_handlers_anon.pm Wed Nov 16
15:53:01 2005
@@ -44,23 +44,13 @@
<VirtualHost TestHooks::push_handlers_anon>
PerlModule TestHooks::push_handlers_anon
<Perl >
- # want to push a handler for a vhost, via $s, but the only way to
- # get $s for vhost is to traverse the vhosts list
- use Apache::Test;
- use Apache::TestRequest;
- Apache::TestRequest::module('TestHooks::push_handlers_anon');
- my $hostport = Apache::TestRequest::hostport(Apache::Test::config());
- my ($host, $port) = split ':', $hostport;
my $s = Apache2::ServerUtil->server;
- my $vs = $s->next;
- for (; $vs; $vs = $vs->next) {
- last if $port == $vs->port
- }
- $vs->push_handlers(PerlFixupHandler =>
+
+ $s->push_handlers(PerlFixupHandler =>
sub { &TestHooks::push_handlers_anon::add_note });
- $vs->push_handlers(PerlFixupHandler =>
+ $s->push_handlers(PerlFixupHandler =>
\&TestHooks::push_handlers_anon::add_note );
- $vs->push_handlers(PerlFixupHandler =>
+ $s->push_handlers(PerlFixupHandler =>
"TestHooks::push_handlers_anon::add_note" );
</Perl>
Modified: perl/modperl/trunk/t/response/TestDirective/perldo.pm
URL:
http://svn.apache.org/viewcvs/perl/modperl/trunk/t/response/TestDirective/perldo.pm?rev=345151&r1=345150&r2=345151&view=diff
==============================================================================
--- perl/modperl/trunk/t/response/TestDirective/perldo.pm (original)
+++ perl/modperl/trunk/t/response/TestDirective/perldo.pm Wed Nov 16 15:53:01
2005
@@ -11,7 +11,7 @@
sub handler {
my $r = shift;
- plan $r, tests => 16;
+ plan $r, tests => 17;
ok t_cmp('yes', $TestDirective::perl::worked);
@@ -52,7 +52,12 @@
ok t_cmp($@, "", "PerlSections dump syntax check");
ok t_cmp($TestDirective::perldo::test::Include, qr/perlsection.conf/);
-
+
+ #Check for correct Apache2::ServerUtil->server behavior
+ my $bport = $TestDirective::perl::base_server->port;
+ my $vport = $TestDirective::perl::vhost_server->port;
+ ok defined $bport && defined $vport && $vport != $bport;
+
Apache2::Const::OK;
}