Use regex for received file evaluation. Fixes recording received packet names

This commit is contained in:
Deon George 2023-11-23 23:17:13 +11:00
parent 455fed52ee
commit 0800c48928
5 changed files with 14 additions and 10 deletions

View File

@ -25,6 +25,8 @@ class Packet extends FTNBase implements \Iterator, \Countable
private const BLOCKSIZE = 1024; private const BLOCKSIZE = 1024;
protected const PACKED_MSG_LEAD = "\02\00"; protected const PACKED_MSG_LEAD = "\02\00";
public const regex = '([[:xdigit:]]{4})(?:-(\d{4,10}))?-(.+)';
public const PACKET_TYPES = [ public const PACKET_TYPES = [
'2.2' => FTNBase\Packet\FSC45::class, '2.2' => FTNBase\Packet\FSC45::class,
'2+' => FTNBase\Packet\FSC48::class, '2+' => FTNBase\Packet\FSC48::class,

View File

@ -182,10 +182,10 @@ class Tic extends FTNBase
$this->file->recv_tic = preg_replace('/\.[Tt][Ii][Cc]$/','',$filename); $this->file->recv_tic = preg_replace('/\.[Tt][Ii][Cc]$/','',$filename);
$m = []; $m = [];
if (preg_match('/^(([0-9A-F]{4})-)?(([0-9]{4,10})-)?(.*).[Tt][Ii][Cc]$/',$filename,$m)) { if (preg_match(sprintf('/^%s\.[Tt][Ii][Cc]$/',Packet::regex),$filename,$m)) {
$aid = $m[2]; $aid = $m[1];
$mtime = $m[4]; $mtime = $m[2];
$this->file->recv_tic = $m[5]; $this->file->recv_tic = $m[3];
} }
$ldesc = ''; $ldesc = '';

View File

@ -7,6 +7,8 @@ use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Symfony\Component\HttpFoundation\File\File as FileBase; use Symfony\Component\HttpFoundation\File\File as FileBase;
use App\Classes\FTN\Packet;
class File extends FileBase implements \Iterator class File extends FileBase implements \Iterator
{ {
private const LOGKEY = 'F--'; private const LOGKEY = 'F--';
@ -108,7 +110,7 @@ class File extends FileBase implements \Iterator
*/ */
public function rawName(): string public function rawName(): string
{ {
return preg_replace('/^[0-9A-F]{4}-([0-9]+)-]/','',$this->getFilename()); return preg_replace(sprintf('/^%s\.pkt$/i',Packet::regex),'\3\4',$this->getFilename());
} }
/** /**
@ -129,7 +131,7 @@ class File extends FileBase implements \Iterator
return preg_replace('/.pkt$/i','',Arr::get(stream_get_meta_data($f),'uri')); return preg_replace('/.pkt$/i','',Arr::get(stream_get_meta_data($f),'uri'));
} else { } else {
return $this->isPacket() ? preg_replace('/.pkt$/i','',$this->rawName()) : NULL; return $this->isPacket() ? $this->rawName() : NULL;
} }
} }
} }

View File

@ -45,8 +45,8 @@ class PacketInfo extends Command
if ($this->argument('ftn')) { if ($this->argument('ftn')) {
$a = Address::findFTN($this->argument('ftn')); $a = Address::findFTN($this->argument('ftn'));
} elseif (preg_match('/^(([0-9A-F]+)-)+/',$this->argument('file'),$m)) { } elseif (preg_match(sprintf('/^%s\.pkt$/',Packet::regex),$this->argument('file'),$m)) {
$a = Address::findOrFail(hexdec($m[2])); $a = Address::findOrFail(hexdec($m[1]));
} }
foreach ($f as $packet) { foreach ($f as $packet) {

View File

@ -48,8 +48,8 @@ class PacketProcess extends Command
if ($this->argument('ftn')) { if ($this->argument('ftn')) {
$a = Address::findFTN($this->argument('ftn')); $a = Address::findFTN($this->argument('ftn'));
} elseif (preg_match('/^(([0-9A-F]+)-([0-9]+))+/',$this->argument('file'),$m)) { } elseif (preg_match(sprintf('/^%s\.pkt$/',Packet::regex),$this->argument('file'),$m)) {
$a = Address::findOrFail(hexdec($m[2])); $a = Address::findOrFail(hexdec($m[1]));
} else { } else {
$this->error('Unable to determine sender FTN address'); $this->error('Unable to determine sender FTN address');