summaryrefslogtreecommitdiffstats
path: root/Bugzilla/PSGI.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Bugzilla/PSGI.pm')
-rw-r--r--Bugzilla/PSGI.pm18
1 files changed, 12 insertions, 6 deletions
diff --git a/Bugzilla/PSGI.pm b/Bugzilla/PSGI.pm
index 22e08540d..854ae733a 100644
--- a/Bugzilla/PSGI.pm
+++ b/Bugzilla/PSGI.pm
@@ -12,19 +12,26 @@ use warnings;
use base qw(Exporter);
+use Bugzilla::Logging;
+use CGI::Compile;
+use CGI::Emulate::PSGI;
+
our @EXPORT_OK = qw(compile_cgi);
sub compile_cgi {
my ($script) = @_;
- my $app = Plack::App::WrapCGI->new( script => $script )->to_app;
-
+ my $cgi = CGI::Compile->compile($script);
+ my $app = CGI::Emulate::PSGI->handler(
+ sub {
+ Bugzilla::init_page();
+ $cgi->();
+ }
+ );
return sub {
- my ($env) = @_;
- Bugzilla::init_page();
+ my $env = shift;
if ($env->{'psgix.cleanup'}) {
push @{ $env->{'psgix.cleanup.handler'} }, \&Bugzilla::_cleanup;
}
-
my $res = $app->($env);
Bugzilla::_cleanup() if not $env->{'psgix.cleanup'};
return $res;
@@ -32,5 +39,4 @@ sub compile_cgi {
}
-
1; \ No newline at end of file