X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FDebug.pm;h=566561865289a2fbf1237303d377de1d992f65c2;hb=17f9a52602377c612bb61b1be6ba549a80d0313c;hp=51e765a7f1db2d58c92daede950be4fd0fe25a6e;hpb=6eba80e5f54e03df635b690e0700cc3bfbd60e15;p=koha.git diff --git a/C4/Debug.pm b/C4/Debug.pm index 51e765a7f1..5665618652 100644 --- a/C4/Debug.pm +++ b/C4/Debug.pm @@ -4,30 +4,29 @@ package C4::Debug; # # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use strict; use warnings; use Exporter; -use CGI; -use vars qw($VERSION @ISA @EXPORT $debug $cgi_debug); +# use CGI qw ( -utf8 ); +use vars qw(@ISA @EXPORT $debug $cgi_debug); # use vars qw(@EXPORT_OK %EXPORT_TAGS); BEGIN { - $VERSION = 1.00; # set the version for version checking @ISA = qw(Exporter); @EXPORT = qw($debug $cgi_debug); # @EXPOR_OK = qw(); @@ -37,16 +36,29 @@ BEGIN { BEGIN { # this stuff needs a begin block too, since dependencies might alter their compilations # for example, adding DataDumper - #my $query = CGI->new(); + $debug = $ENV{KOHA_DEBUG} || $ENV{DEBUG} || 0; - #$cgi_debug = $ENV{KOHA_CGI_DEBUG} || $query->param('debug') || 0; + + # CGI->new conflicts w/ some upload functionality, + # since we would get the "first" CGI object here. + # Instead we have to parse for ourselves if we want QUERY_STRING triggers. + # my $query = CGI->new(); # conflicts! + # $cgi_debug = $ENV{KOHA_CGI_DEBUG} || $query->param('debug') || 0; + $cgi_debug = $ENV{KOHA_CGI_DEBUG} || 0; - unless (0 <= $debug and $debug <= 9) { + unless ($cgi_debug or not $ENV{QUERY_STRING}) { + foreach (split /\&/, $ENV{QUERY_STRING}) { + /^debug\=(.+)$/ or next; + $cgi_debug = $1; + last; + } + } + unless ($debug =~ /^\d$/) { warn "Invalid \$debug value attempted: $debug"; $debug=1; } - unless (0 <= $cgi_debug and $cgi_debug <= 9) { - $debug and + unless ($cgi_debug =~ /^\d$/) { + $debug and warn "Invalid \$cgi_debug value attempted: $cgi_debug"; $cgi_debug=1; } @@ -61,8 +73,8 @@ BEGIN { __END__ =head1 NAME - - C4::Debug - Standardized, centralized, exported debug switches. + +C4::Debug - Standardized, centralized, exported debug switches. =head1 SYNOPSIS @@ -103,7 +115,7 @@ The general purpose debug switch. =over =item environmental variable DEBUG or KOHA_DEBUG. In bash, you might do: - + export KOHA_DEBUG=1; perl t/Auth.t; @@ -114,7 +126,6 @@ command with ERROR_LOG enabled for your VirtualHost. Not intended for productio =item You can force the value from perl directly, like: use C4::Debug; - use C4::Dates; BEGIN { $C4::Debug::debug = 1; } # now any other dependencies that also use C4::Debug will have debugging ON. @@ -126,7 +137,7 @@ command with ERROR_LOG enabled for your VirtualHost. Not intended for productio =over -=item From a web browser, for example by supplying a non-zero debug parameter: +=item From a web browser, for example by supplying a non-zero debug parameter (1 to 9): http://www.mylibrary.org/cgi-bin/koha/opac-search.pl?q=history&debug=1 @@ -139,12 +150,15 @@ command with ERROR_LOG enabled for your VirtualHost. Not intended for productio =back The former methods mean $cgi_debug is exposed. Do NOT use it to trigger any actions that you would -not allow a (potentially anonymous) end user to perform. +not allow a (potentially anonymous) end user to perform. Dumping sensitive data, directory listings, or +emailing yourself a test message would all be bad actions to tie to $cgi_debug. =head1 OTHER SOURCES of Debug Switches =head2 System Preferences +=cut + =head2 Database Debug Debugging at the database level might be useful. Koha does not currently integrate any such