From 5400d2499ba3e626958171eb33c6e8bab6f98370 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sven=20Sch=C3=B6ling?= Date: Thu, 30 Sep 2010 13:04:54 +0200 Subject: [PATCH] Printer in Admin - kleine Korrekturen 1. Eine Debugmeldung rausgenommen 2. Eine Unsauberkeit behoben die beim Portieren auf 2.6.1 aufgefallen ist. Folgender Code crasht: for (1) { 1 while <>; } weil das gealiaste $_ read-only flagged ist, und <> das beschrieben will. Genau das konnte passieren, wenn die Locales aus auth erstellt wurden und die special_chars einlesen wollten, aber noch ein alias $_ => 1 aus dem printer_dispatcher aktuell war. 3. Im admin bereich gezogene user_dbh wurden nicht richtig geschlossen, was ein Speicherleck unter fcgi bedeutet, und unter cgi das log mit Warnungen flutet, dass das handle in destruction geschlossen wurde und ein rollback gemacht hat. --- SL/Printer.pm | 6 ++++++ bin/mozilla/admin_printer.pl | 7 +++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/SL/Printer.pm b/SL/Printer.pm index 346d734a2..ed42b01af 100644 --- a/SL/Printer.pm +++ b/SL/Printer.pm @@ -12,6 +12,8 @@ sub all_printers { my $query = qq|SELECT * FROM printers ORDER BY printer_description|; my @printers = selectall_hashref_query($::form, $dbh, $query); + $dbh->disconnect; + $::lxdebug->leave_sub; return wantarray ? @printers : \@printers; @@ -27,6 +29,8 @@ sub get_printer { my $query = qq|SELECT * FROM printers WHERE id = ?|; my ($printer) = selectfirst_hashref_query($::form, $dbh, $query, $params{id}); + $dbh->disconnect; + $::lxdebug->leave_sub; return $printer; @@ -61,6 +65,7 @@ SQL ); $dbh->commit; + $dbh->disconnect; $::lxdebug->leave_sub; } @@ -76,6 +81,7 @@ sub delete_printer { do_query($::form, $dbh, $query, $params{id}); $dbh->commit; + $dbh->disconnect; $::lxdebug->leave_sub; } diff --git a/bin/mozilla/admin_printer.pl b/bin/mozilla/admin_printer.pl index bc623327f..b245b56fd 100644 --- a/bin/mozilla/admin_printer.pl +++ b/bin/mozilla/admin_printer.pl @@ -20,10 +20,9 @@ sub get_login_form { } sub printer_dispatcher { - $::lxdebug->dump(0, "testing", $::form); - for (qw(get_login_form list_printers add_printer edit_printer save_printer delete_printer list_users)) { - if ($::form->{$_}) { - ::call_sub($::locale->findsub($_)); + for my $action (qw(get_login_form list_printers add_printer edit_printer save_printer delete_printer list_users)) { + if ($::form->{$action}) { + ::call_sub($::locale->findsub($action)); ::end_of_request() } } -- 2.20.1