},
);
+ my $server_matches = sub {
+ my ($re) = @_;
+ return sub {
+ my ($env) = @_;
+ my $server = $env->{SERVER_SOFTWARE};
+ return unless $server;
+ return $server =~ $re ? 1 : 0;
+ };
+ };
+
# If we're running under Lighttpd, swap PATH_INFO and SCRIPT_NAME
# http://lists.scsys.co.uk/pipermail/catalyst/2006-June/008361.html
# Thanks to Mark Blythe for this fix
# we can.
$psgi_app = Plack::Middleware::Conditional->wrap(
$psgi_app,
- builder => sub {
+ condition => $server_matches->(qr/lighttpd/),
+ builder => sub {
my ($to_wrap) = @_;
return sub {
my ($env) = @_;
return $to_wrap->($env);
};
},
- condition => sub {
- my ($env) = @_;
- my $server = $env->{SERVER_SOFTWARE};
- return unless $server;
- return $server =~ /lighttpd/ ? 1 : 0;
- },
);
$psgi_app = Plack::Middleware::Conditional->wrap(
$psgi_app,
- builder => sub {
+ condition => $server_matches->(qr/^nginx/),
+ builder => sub {
my ($to_wrap) = @_;
return sub {
my ($env) = @_;
return $to_wrap->($env);
};
},
- condition => sub {
- my ($env) = @_;
- my $server = $env->{SERVER_SOFTWARE};
- return unless $server;
- return $server =~ /^nginx/ ? 1 : 0;
- },
);
$psgi_app = Plack::Middleware::Conditional->wrap(
$psgi_app,
- builder => sub {
+ condition => $server_matches->(qr/IIS\/[6-9]\.[0-9]/),
+ builder => sub {
my ($to_wrap) = @_;
return sub {
my ($env) = @_;
return $to_wrap->($env);
};
},
- condition => sub {
- my ($env) = @_;
- my $server = $env->{SERVER_SOFTWARE};
- return unless $server;
- return $server =~ /IIS\/[6-9]\.[0-9]/ ? 1 : 0;
- },
);
return $psgi_app;