Dont delete archive until all packets processed

This commit is contained in:
Deon George 2022-12-04 21:59:06 +11:00
parent 4d3d57fdcd
commit f089f3bcdc
1 changed files with 12 additions and 7 deletions

View File

@ -115,18 +115,23 @@ final class Receive extends Item
try { try {
$f = new File($this->file); $f = new File($this->file);
$error = FALSE;
foreach ($f as $packet) { foreach ($f as $packet) {
$po = Packet::process($packet,Arr::get(stream_get_meta_data($packet),'uri'),$f->itemSize(),$this->ao->system); $po = Packet::process($packet,Arr::get(stream_get_meta_data($packet),'uri'),$f->itemSize(),$this->ao->system);
// Check the messages are from the uplink // Check the messages are from the uplink
if ($this->ao->system->addresses->search(function($item) use ($po) { return $item->id == $po->fftn_o->id; }) === FALSE) { if ($this->ao->system->addresses->search(function($item) use ($po) { return $item->id == $po->fftn_o->id; }) === FALSE) {
Log::error(sprintf('%s: ! Packet [%s] is not from this link? [%d]',self::LOGKEY,$po->fftn_o->ftn,$this->ao->system_id)); Log::error(sprintf('%s: ! Packet [%s] is not from this link? [%d]',self::LOGKEY,$po->fftn_o->ftn,$this->ao->system_id));
$error = TRUE;
break; break;
} }
// Check the packet password // Check the packet password
if ($this->ao->session('pktpass') != $po->password) { if ($this->ao->session('pktpass') != $po->password) {
Log::error(sprintf('%s: ! Packet from [%s] with password [%s] is invalid.',self::LOGKEY,$this->ao->ftn,$po->password)); Log::error(sprintf('%s: ! Packet from [%s] with password [%s] is invalid.',self::LOGKEY,$this->ao->ftn,$po->password));
$error = TRUE;
// @todo Generate message to system advising invalid password - that message should be sent without a packet password! // @todo Generate message to system advising invalid password - that message should be sent without a packet password!
break; break;
} }
@ -156,15 +161,15 @@ final class Receive extends Item
$error = TRUE; $error = TRUE;
} }
} }
}
if ($po->errors->count() || $error) { if ($error) {
Log::info(sprintf('%s: - Not deleting packet [%s], as it has validation errors',self::LOGKEY,$this->file)); Log::info(sprintf('%s: - Not deleting packet [%s], as it has validation errors',self::LOGKEY,$this->file));
// If we want to keep the packet, we could do that logic here // If we want to keep the packet, we could do that logic here
} elseif (! config('app.packet_keep')) { } elseif (! config('app.packet_keep')) {
Log::debug(sprintf('%s: - Deleting processed packet [%s]',self::LOGKEY,$this->file)); Log::debug(sprintf('%s: - Deleting processed packet [%s]',self::LOGKEY,$this->file));
unlink($this->file); unlink($this->file);
}
} }
} catch (InvalidPacketException $e) { } catch (InvalidPacketException $e) {