+ my $max_archive_size = $Conf{MaxArchiveSize} || die "no MaxArchiveSize";
+ while (my $row = $sth_archive_backup_parts->fetchrow_hashref) {
+ if (($v->{size} || 0) + $row->{part_size} > $max_archive_size) {
+ push @volumes, $v;
+ $v = {};
+ }
+ $v->{size} += $row->{part_size};
+ # this part
+ my $p = {
+ filename => BackupPC::SearchLib::getGzipName($row->{'host'}, $row->{'share'}, $row->{'num'}),
+ };
+ foreach my $fld (qw/part_nr md5/) {
+ $p->{$fld} = $row->{$fld} || die "missing $fld in row!";
+ }
+ push @{ $v->{parts} }, $p;
+ }
+ push @volumes, $v if ($v);