Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 9b0a9214

Von G. Richardson vor mehr als 12 Jahren hinzugefügt

  • ID 9b0a9214762dafdc3e0313d8d75e0fe8ecb13fb0
  • Vorgänger dfeaf8fb
  • Nachfolger f1d475ff

Bug 1926 - Zufälliger Dateiname für PDF Spooldateien

Beim Erstellen der Spooldatei beim Warteschlangendruck den Dateinamen per
File::Temp::tempfile erstellen. Die bisherige Kombination aus time und PID hat
PDF-Dateien überschrieben, wenn zwei Spooldateien in der gleichen Sekunde
erstellt wurden.

Beispiel alter Spoolname: 134012447722563.pdf
Beispiel neuer Spoolname: kivitendo-spoolJKuGZM.pdf

Unterschiede anzeigen:

bin/mozilla/io.pl
1535 1535
    my %queued = map { s|.*/|| } split / /, $form->{queued};
1536 1536

  
1537 1537
    my $filename;
1538
    my $suffix = ($form->{postscript}) ? '.ps' : '.pdf';
1538 1539
    if ($filename = $queued{ $form->{formname} }) {
1539 1540
      $form->{queued} =~ s/\Q$form->{formname} $filename\E//;
1540 1541
      unlink $::lx_office_conf{paths}->{spool} . "/$filename";
1541 1542
      $filename =~ s/\..*$//g;
1543
      $filename .= $suffix;
1544
      $form->{OUT} = $::lx_office_conf{paths}->{spool} . "/$filename";
1545
      $form->{OUT_MODE} = '>';
1542 1546
    } else {
1543
      $filename = time;
1544
      $filename .= $$;
1547
      my $temp_fh;
1548
      ($temp_fh, $filename) = File::Temp::tempfile(
1549
        'kivitendo-spoolXXXXXX',
1550
        SUFFIX => "$suffix",
1551
        DIR => $::lx_office_conf{paths}->{spool},
1552
      );
1553
      close $temp_fh;
1554
      $form->{OUT} = "$filename";
1555
      # use >> for OUT_MODE because file is already created by File::Temp
1556
      $form->{OUT_MODE} = '>>';
1557
      # strip directory so that only filename is stored in table status
1558
      ($filename) = $filename =~ /^$::lx_office_conf{paths}->{spool}\/(.*)/;
1545 1559
    }
1546 1560

  
1547
    $filename .= ($form->{postscript}) ? '.ps' : '.pdf';
1548
    $form->{OUT} = $::lx_office_conf{paths}->{spool} . "/$filename";
1549
    $form->{OUT_MODE} = '>';
1550

  
1551 1561
    # add type
1552 1562
    $form->{queued} .= " $form->{formname} $filename";
1553

  
1554 1563
    $form->{queued} =~ s/^ //;
1555 1564
  }
1556 1565
  my $queued = $form->{queued};

Auch abrufbar als: Unified diff