--- trunk/lib/BackupPC/SearchLib.pm 2005/10/12 16:49:02 188 +++ trunk/lib/BackupPC/SearchLib.pm 2005/10/13 17:11:59 194 @@ -307,6 +307,28 @@ } +sub get_tgz_size_by_name($) { + my $name = shift; + + my $tgz = $Conf{InstallDir}.'/'.$Conf{GzipTempDir}.'/'.$name; + + my $size = -1; + + if (-f $tgz) { + $size = (stat($tgz))[7]; + } elsif (-d $tgz) { + opendir(my $dir, $tgz) || die "can't opendir $tgz: $!"; + my @parts = grep { !/^\./ && -f "$tgz/$_" } readdir($dir); + $size = 0; + foreach my $part (@parts) { + $size += (stat("$tgz/$part"))[7] || die "can't stat $tgz/$part: $!"; + } + closedir $dir; + } + + return $size; +} + sub getGzipSize($$) { my ($hostID, $backupNum) = @_; @@ -327,12 +349,10 @@ $sth->execute($hostID, $backupNum); my $row = $sth->fetchrow_hashref(); - - my (undef,undef,undef,undef,undef,undef,undef,$ret,undef,undef,undef,undef,undef) = - stat( $Conf{InstallDir}.'/'.$Conf{GzipTempDir}.'/'. - getGzipName($row->{'host'}, $row->{share}, $row->{'backupnum'})); - - return $ret; + + return get_tgz_size_by_name( + getGzipName($row->{'host'}, $row->{share}, $row->{'backupnum'}) + ); } sub getBackupsNotBurned() {