Browse Source

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

Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
master
Jonathan Druart 4 months ago
parent
commit
5a4d4b9478
1 changed files with 5 additions and 60 deletions
  1. +5
    -60
      C4/Context.pm

+ 5
- 60
C4/Context.pm View File

@@ -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(<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head><title>Koha Error</title></head>
<body>
);
if ($debug_level eq "2"){
# debug 2 , print extra info too.
my %versions = get_versions();

# a little example table with various version info";
print "
<h1>Koha error</h1>
<p>The following fatal error has occurred:</p>
<pre><code>$msg</code></pre>
<table>
<tr><th>Apache</th><td> $versions{apacheVersion}</td></tr>
<tr><th>Koha</th><td> $versions{kohaVersion}</td></tr>
<tr><th>Koha DB</th><td> $versions{kohaDbVersion}</td></tr>
<tr><th>MySQL</th><td> $versions{mysqlVersion}</td></tr>
<tr><th>OS</th><td> $versions{osVersion}</td></tr>
<tr><th>Perl</th><td> $versions{perlVersion}</td></tr>
</table>";

} elsif ($debug_level eq "1"){
print "
<h1>Koha error</h1>
<p>The following fatal error has occurred:</p>
<pre><code>$msg</code></pre>";
} else {
print "<p>production mode - trapped fatal error</p>";
}
print "</body></html>";
}
#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;


Loading…
Cancel
Save