From f57a87a51e4d3e39a6fc552b963621625b2db899 Mon Sep 17 00:00:00 2001 From: Dylan William Hardison Date: Sat, 3 Mar 2018 19:38:10 -0500 Subject: make sure init_page() is called inside a CGI environment --- Bugzilla/PSGI.pm | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'Bugzilla/PSGI.pm') 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 -- cgit v1.2.3-24-g4f1b