diff options
Diffstat (limited to 'Bugzilla')
-rw-r--r-- | Bugzilla/PSGI.pm | 18 |
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 |