From: erickson Date: Wed, 19 Jul 2006 14:46:18 +0000 (+0000) Subject: sanity checking searches to prevent explosion. logging search params X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=723125bbd95179606a1cd2d475e4d60cb6852757;p=Evergreen.git sanity checking searches to prevent explosion. logging search params git-svn-id: svn://svn.open-ils.org/ILS/trunk@5080 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Search/Biblio.pm b/Open-ILS/src/perlmods/OpenILS/Application/Search/Biblio.pm index 2fc0d53774..c3c2e57de1 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Search/Biblio.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Search/Biblio.pm @@ -347,6 +347,21 @@ sub the_quest_for_knowledge { my $limit = $searchhash->{limit} || 10; my $end = $offset + $limit - 1; + for( keys %{$searchhash->{searches}} ) { + + } + + # do some simple sanity checking + if(!$searchhash->{searches} or + ( + !$searchhash->{searches}->{title} and + !$searchhash->{searches}->{author} and + !$searchhash->{searches}->{subject} and + !$searchhash->{searches}->{series} and + !$searchhash->{searches}->{keyword} ) ) { + return { count => 0 }; + } + my $maxlimit = 5000; $searchhash->{offset} = 0; @@ -356,7 +371,10 @@ sub the_quest_for_knowledge { my @search; push( @search, ($_ => $$searchhash{$_})) for (sort keys %$searchhash); - my $ckey = $pfx . md5_hex($method . JSON->perl2JSON(\@search)); + my $s = JSON->perl2JSON(\@search); + my $ckey = $pfx . md5_hex($method . $s); + + $logger->info("bib search for: $s"); $searchhash->{limit} -= $offset;