From 4e66990826c762600bb39333fdc42ab3cc8e8018 Mon Sep 17 00:00:00 2001 From: Deon George Date: Tue, 15 Nov 2022 22:01:05 +1100 Subject: [PATCH] Fix processing packets when we loop without reading --- app/Classes/FTN/Message.php | 1 + app/Classes/FTN/Packet.php | 5 +++-- app/Classes/FTN/Tic.php | 5 ++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/Classes/FTN/Message.php b/app/Classes/FTN/Message.php index fee9ae4..97b1a6d 100644 --- a/app/Classes/FTN/Message.php +++ b/app/Classes/FTN/Message.php @@ -893,6 +893,7 @@ class Message extends FTNBase } elseif ($this->zone) { $this->src = Address::parseFTN(sprintf('%d:%d/%d.%d@%s',$this->zone->zone_id,$this->fn,$this->ff,$this->fp,$this->zone->domain->name)); } + // Parse SEEN-BY if ($this->seenby->count()) $this->seenaddress = $this->parseAddresses('seenby',$this->seenby,$this->rogue_seenby); diff --git a/app/Classes/FTN/Packet.php b/app/Classes/FTN/Packet.php index e763a75..c55b004 100644 --- a/app/Classes/FTN/Packet.php +++ b/app/Classes/FTN/Packet.php @@ -175,7 +175,8 @@ class Packet extends FTNBase implements \Iterator, \Countable $last = ''; while ($buf_ptr || (! feof($f) && ($readbuf=fread($f,self::BLOCKSIZE)))) { - $read_ptr += strlen($readbuf); + if (! $buf_ptr) + $read_ptr += strlen($readbuf); // Could use ftell() if (strlen($message) < self::PACKED_MSG_HEADER_LEN) { $addchars = self::PACKED_MSG_HEADER_LEN-strlen($message); @@ -207,7 +208,7 @@ class Packet extends FTNBase implements \Iterator, \Countable } if (($end=strpos($readbuf,"\x00\x02\x00",$buf_ptr)) === FALSE) { - // In case our packet break is at the end of the buffer + // Just in case our packet break is at the end of the buffer $last = substr($readbuf,-2); if ((str_contains($last,"\x00")) && ($size-$read_ptr > 2)) { diff --git a/app/Classes/FTN/Tic.php b/app/Classes/FTN/Tic.php index 86ec013..5d30bba 100644 --- a/app/Classes/FTN/Tic.php +++ b/app/Classes/FTN/Tic.php @@ -4,13 +4,12 @@ namespace App\Classes\FTN; use Carbon\Carbon; use Illuminate\Contracts\Filesystem\FileNotFoundException; -use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Storage; use League\Flysystem\UnableToWriteFile; use App\Classes\FTN as FTNBase; -use App\Models\{Address, File, Filearea, Setup}; +use App\Models\{Address,File,Filearea}; use App\Traits\EncodeUTF8; /** @@ -22,7 +21,7 @@ class Tic extends FTNBase { use EncodeUTF8; - private const LOGKEY = 'FM-'; + private const LOGKEY = 'FT-'; private const cast_utf8 = [ ];