The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Changes 04
META.yml 11
lib/Plack/App/CGIBin.pm 22
lib/Plack/App/Directory.pm 13
lib/Plack/Handler/Apache2/Registry.pm 11
lib/Plack/Handler/Apache2.pm 33
lib/Plack/Request.pm 11
lib/Plack/Response.pm 11
lib/Plack/Server/ServerSimple.pm 11
lib/Plack.pm 11
t/Plack-Handler/net_fastcgi.t 11
t/Plack-Middleware/wrapcgi.t 11
12 files changed (This is a version diff) 1420
@@ -2,6 +2,10 @@ Revision history for Perl extension Plack
 
 Take a look at http://github.com/miyagawa/Plack/issues for the planned changes before 1.0 release.
 
+0.9946  Sat Aug 28 22:32:16 PDT 2010
+        - Fixes UUV warnings in Apache2 handler RT:60472
+        - Fixed various test failures due to dependencies
+
 0.9945  Thu Aug 19 16:24:30 PDT 2010
         - Support executing (non-perl) CGI scripts in CGIBin and WrapCGI
         - Fixed tests for win32
@@ -38,4 +38,4 @@ requires:
 resources:
   license: http://dev.perl.org/licenses/
   repository: git://github.com/miyagawa/Plack.git
-version: 0.9945
+version: 0.9946
@@ -107,13 +107,13 @@ You can customize this behavior by passing C<exec_cb> callback, which
 takes a file path to its first argument.
 
 For example, if your perl-based CGI script uses lots of global
-variables and such and are not ready to run on a persisten
+variables and such and are not ready to run on a persistent
 environment, you can do:
 
   my $app = Plack::App::CGIBin->new(
       root => "/path/to/cgi-bin",
       exec_cb => sub { 1 },
-  );
+  )->to_app;
 
 to always force the execute option for any files.
 
@@ -58,7 +58,9 @@ sub serve_path {
 
     for my $basename (sort { $a cmp $b } @children) {
         my $file = "$dir/$basename";
-        my $url = $env->{SCRIPT_NAME} . $env->{PATH_INFO} . $basename;
+        my $url = $env->{SCRIPT_NAME} . $env->{PATH_INFO};
+        $url .= '/' unless $url =~ m{/$};
+        $url .= $basename;
 
         my $is_dir = -d $file;
         my @stat = stat _;
@@ -25,7 +25,7 @@ sub handler {
 }
 
 # Overriding
-sub _recalc_paths {}
+sub fixup_path {}
 
 1;
 
@@ -48,7 +48,7 @@ sub call_app {
         'psgi.nonblocking'    => Plack::Util::FALSE,
     };
 
-    $class->_recalc_paths($r, $env);
+    $class->fixup_path($r, $env);
 
     my $res = $app->($env);
 
@@ -75,9 +75,9 @@ sub handler {
 }
 
 # The method for PH::Apache2::Regitsry to override.
-sub _recalc_paths {
+sub fixup_path {
     my ($class, $r, $env) = @_;
-    my $vpath    = $env->{SCRIPT_NAME} . $env->{PATH_INFO};
+    my $vpath    = $env->{SCRIPT_NAME} . ($env->{PATH_INFO} || '');
     my $location = $r->location || "/";
        $location =~ s{/$}{};
     (my $path_info = $vpath) =~ s/^\Q$location\E//;
@@ -2,7 +2,7 @@ package Plack::Request;
 use strict;
 use warnings;
 use 5.008_001;
-our $VERSION = '0.9945';
+our $VERSION = '0.9946';
 $VERSION = eval $VERSION;
 
 use HTTP::Headers;
@@ -1,7 +1,7 @@
 package Plack::Response;
 use strict;
 use warnings;
-our $VERSION = '0.9945';
+our $VERSION = '0.9946';
 $VERSION = eval $VERSION;
 
 use Plack::Util::Accessor qw(body status);
@@ -1,6 +1,6 @@
 package Plack::Server::ServerSimple;
 use strict;
-our $VERSION = '0.9945';
+our $VERSION = '0.9946';
 $VERSION = eval $VERSION;
 
 use parent qw(Plack::Handler::HTTP::Server::Simple);
@@ -3,7 +3,7 @@ package Plack;
 use strict;
 use warnings;
 use 5.008_001;
-our $VERSION = '0.9945';
+our $VERSION = '0.9946';
 $VERSION = eval $VERSION;
 
 1;
@@ -1,7 +1,7 @@
 use strict;
 use warnings;
 use Test::More;
-use Test::Requires { 'Net::FastCGI' => 0.11, 'FCGI::Client' => 0.04 };
+use Test::Requires { 'Net::FastCGI' => 0.12, 'FCGI::Client' => 0.04 };
 use Plack::Handler::Net::FastCGI;
 use Test::TCP;
 use Plack::Test::Suite;
@@ -1,6 +1,6 @@
 use strict;
 use Test::More;
-use Test::Requires { 'CGI::Emulate::PSGI' => 0, 'CGI::Compile' => 0.03 };
+use Test::Requires { 'CGI::Emulate::PSGI' => 0.06, 'CGI::Compile' => 0.03 };
 use Plack::Test;
 use HTTP::Request::Common;
 use Plack::App::WrapCGI;