]> wagnertech.de Git - kivitendo-erp.git/commitdiff
Printer in Admin - kleine Korrekturen
authorSven Schöling <s.schoeling@linet-services.de>
Thu, 30 Sep 2010 11:04:54 +0000 (13:04 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Thu, 30 Sep 2010 11:04:54 +0000 (13:04 +0200)
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
bin/mozilla/admin_printer.pl

index 346d734a2b7ddc0f3c4cdad55c7a75e031ebd93a..ed42b01afa78f233ddd6bc4d48962f06898d705b 100644 (file)
@@ -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;
 }
index bc623327fbb08ceb249fa15fcd1e57bcdb3415b3..b245b56fdfcc34acc3e147bb4744b5cdab9586f5 100644 (file)
@@ -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()
     }
   }