From 8c0790836fafdaced92a324c8db100aed2b5e301 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 16 Dec 2020 11:04:48 +0100 Subject: [PATCH] Bug 27246: Remove obsolete BEGIN code from C4::Context We don't longer enter the HTTP_USER_AGENT conditional in the BEGIN block of C4::Context. It was used when apache only was used. I am suggesting to remove it but keep the $CGI::VERSION < 4.08 condition to keep support of all version (not sure it's needed but won't hurt). I have not found a lot of occurrences of KOHA_BACKTRACES and I am assuming not much people are using it, we should prefer the dev_install flag instead (to set environment="development" when plack is started and enabled the starman trace) Test plan: Regression test what you think is useful Confirm the above statements --- C4/Context.pm | 65 ++++----------------------------------------------- 1 file changed, 5 insertions(+), 60 deletions(-) diff --git a/C4/Context.pm b/C4/Context.pm index 27c0e3ef8d..a6aee7ede4 100644 --- a/C4/Context.pm +++ b/C4/Context.pm @@ -21,74 +21,19 @@ use Modern::Perl; use vars qw($AUTOLOAD $context @context_stack); BEGIN { - if ($ENV{'HTTP_USER_AGENT'}) { - require CGI::Carp; - # FIXME for future reference, CGI::Carp doc says - # "Note that fatalsToBrowser does not work with mod_perl version 2.0 and higher." - import CGI::Carp qw(fatalsToBrowser); - sub handle_errors { - my $msg = shift; - my $debug_level; - eval {C4::Context->dbh();}; - if ($@){ - $debug_level = 1; - } - else { - $debug_level = C4::Context->preference("DebugLevel"); - } - - print q( - - Koha Error - - ); - if ($debug_level eq "2"){ - # debug 2 , print extra info too. - my %versions = get_versions(); - - # a little example table with various version info"; - print " -

Koha error

-

The following fatal error has occurred:

-
$msg
- - - - - - - -
Apache $versions{apacheVersion}
Koha $versions{kohaVersion}
Koha DB $versions{kohaDbVersion}
MySQL $versions{mysqlVersion}
OS $versions{osVersion}
Perl $versions{perlVersion}
"; - - } elsif ($debug_level eq "1"){ - print " -

Koha error

-

The following fatal error has occurred:

-
$msg
"; - } else { - print "

production mode - trapped fatal error

"; - } - print ""; - } - #CGI::Carp::set_message(\&handle_errors); - ## give a stack backtrace if KOHA_BACKTRACES is set - ## can't rely on DebugLevel for this, as we're not yet connected - if ($ENV{KOHA_BACKTRACES}) { - $main::SIG{__DIE__} = \&CGI::Carp::confess; - } + if ( $ENV{'HTTP_USER_AGENT'} ) { # Only hit when plack is not enabled # Redefine multi_param if cgi version is < 4.08 # Remove the "CGI::param called in list context" warning in this case - require CGI; # Can't check version without the require. - if (!defined($CGI::VERSION) || $CGI::VERSION < 4.08) { + require CGI; # Can't check version without the require. + if ( !defined($CGI::VERSION) || $CGI::VERSION < 4.08 ) { no warnings 'redefine'; *CGI::multi_param = \&CGI::param; use warnings 'redefine'; $CGI::LIST_CONTEXT_WARN = 0; } - } # else there is no browser to send fatals to! -} + } +}; use Carp; use DateTime::TimeZone; -- 2.20.1