X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst.pm;h=2f6fe22d84bdcf1d001d0546075f10611f23a54d;hp=7009a53dce75da0bae1574596385a48b2d3299a7;hb=201e0a1fbca74dbe62eb5233df7861bcc7a384e9;hpb=cfdd890d1f76bd9403c5b8a30f902394297ffb68 diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 7009a53..2f6fe22 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -36,6 +36,7 @@ use Try::Tiny; use Plack::Middleware::Conditional; use Plack::Middleware::ReverseProxy; use Plack::Middleware::IIS6ScriptNameFix; +use Plack::Middleware::IIS7KeepAliveFix; use Plack::Middleware::LighttpdScriptNameFix; BEGIN { require 5.008003; } @@ -2793,6 +2794,16 @@ sub apply_default_middlewares { # IIS versions $psgi_app = Plack::Middleware::IIS6ScriptNameFix->wrap($psgi_app); + # And another IIS issue, this time with IIS7. + $psgi_app = Plack::Middleware::Conditional->wrap( + $psgi_app, + builder => sub { Plack::Middleware::IIS7KeepAliveFix->wrap($_[0]) }, + condition => sub { + my ($env) = @_; + return unless $env->{SERVER_SOFTWARE} && $env->{SERVER_SOFTWARE} =~ m!IIS\/7\.[0-9]!; 1; }, ); + }, + ); + return $psgi_app; }