Bugzilla – Attachment 15754 Details for
Bug 9726
XISBN service throttle not initialized
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Proposed patch
0001-Bug-9726-XISBN-service-throttle-not-initialized.patch (text/plain), 2.46 KB, created by
Fridolin Somers
on 2013-02-28 09:18:38 UTC
(
hide
)
Description:
Proposed patch
Filename:
MIME Type:
Creator:
Fridolin Somers
Created:
2013-02-28 09:18:38 UTC
Size:
2.46 KB
patch
obsolete
>From 24d9636c9209d4c160453e9a26dcf4d0cd4901a8 Mon Sep 17 00:00:00 2001 >From: Fridolyn SOMERS <fridolyn.somers@biblibre.com> >Date: Thu, 28 Feb 2013 10:04:17 +0100 >Subject: [PATCH] Bug 9726: XISBN service throttle not initialized > >For limiting XISBN API use, XISBNDailyLimit syspref is used to compare with daily use count of the API. This count is stored in services_throttle table. >But this table content is never initialized, not in installer nor in updatedatabase. So count is never increased and API is used without limit. > >This patch add an insert of service type in services_throttle if not existing. >So service throttle will be initialized. > >Test plan : >- Check that you don't have a line in services_throttle for service_type=xisbn >- Activate FRBRizeEditions and XISBN sysprefs >- Set a small number in XISBNDailyLimit (ie 5) >- Go to a biblio page (with ISBN) >- Look at services_throttle table >=> you should have a line for service_type=xisbn with service_count=1. >- Refresh biblio page untill limit is reached >=> service_count should be equal to limit for service_type=xisbn >--- > C4/XISBN.pm | 16 +++++++++++----- > 1 file changed, 11 insertions(+), 5 deletions(-) > >diff --git a/C4/XISBN.pm b/C4/XISBN.pm >index 8616c95..12025f8 100644 >--- a/C4/XISBN.pm >+++ b/C4/XISBN.pm >@@ -156,12 +156,16 @@ sub _get_url { > sub _service_throttle { > my ($service_type,$daily_limit) = @_; > my $dbh = C4::Context->dbh; >- my $sth = $dbh->prepare("SELECT service_count FROM services_throttle WHERE service_type=?"); >+ my $sth = $dbh->prepare(q{ SELECT service_count FROM services_throttle WHERE service_type=? }); > $sth->execute($service_type); >- my $count = 1; >+ my $count = 0; > >- while (my $counter = $sth->fetchrow_hashref()) { >- $count = $counter->{service_count} if $counter->{service_count}; >+ if ($sth->rows == 0) { >+ # initialize services throttle >+ my $sth2 = $dbh->prepare(q{ INSERT INTO services_throttle (service_type, service_count) VALUES (?, ?) }); >+ $sth2->execute($service_type, $count); >+ } else { >+ $count = $sth->fetchrow_array; > } > > # we're over the limit >@@ -169,7 +173,9 @@ sub _service_throttle { > > # not over the limit > $count++; >- $sth = $dbh->do("UPDATE services_throttle SET service_count=$count WHERE service_type='xisbn'"); >+ my $sth3 = $dbh->prepare(q{ UPDATE services_throttle SET service_count=? WHERE service_type=? }); >+ $sth3->execute($count, $service_type); >+ > return undef; > } > >-- >1.7.10.4 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 9726
:
15754
|
16431
|
17063