Use regex for received file evaluation. Fixes recording received packet names
This commit is contained in:
parent
455fed52ee
commit
0800c48928
@ -25,6 +25,8 @@ class Packet extends FTNBase implements \Iterator, \Countable
|
||||
private const BLOCKSIZE = 1024;
|
||||
protected const PACKED_MSG_LEAD = "\02\00";
|
||||
|
||||
public const regex = '([[:xdigit:]]{4})(?:-(\d{4,10}))?-(.+)';
|
||||
|
||||
public const PACKET_TYPES = [
|
||||
'2.2' => FTNBase\Packet\FSC45::class,
|
||||
'2+' => FTNBase\Packet\FSC48::class,
|
||||
|
@ -182,10 +182,10 @@ class Tic extends FTNBase
|
||||
$this->file->recv_tic = preg_replace('/\.[Tt][Ii][Cc]$/','',$filename);
|
||||
|
||||
$m = [];
|
||||
if (preg_match('/^(([0-9A-F]{4})-)?(([0-9]{4,10})-)?(.*).[Tt][Ii][Cc]$/',$filename,$m)) {
|
||||
$aid = $m[2];
|
||||
$mtime = $m[4];
|
||||
$this->file->recv_tic = $m[5];
|
||||
if (preg_match(sprintf('/^%s\.[Tt][Ii][Cc]$/',Packet::regex),$filename,$m)) {
|
||||
$aid = $m[1];
|
||||
$mtime = $m[2];
|
||||
$this->file->recv_tic = $m[3];
|
||||
}
|
||||
|
||||
$ldesc = '';
|
||||
|
@ -7,6 +7,8 @@ use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Symfony\Component\HttpFoundation\File\File as FileBase;
|
||||
|
||||
use App\Classes\FTN\Packet;
|
||||
|
||||
class File extends FileBase implements \Iterator
|
||||
{
|
||||
private const LOGKEY = 'F--';
|
||||
@ -108,7 +110,7 @@ class File extends FileBase implements \Iterator
|
||||
*/
|
||||
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'));
|
||||
|
||||
} else {
|
||||
return $this->isPacket() ? preg_replace('/.pkt$/i','',$this->rawName()) : NULL;
|
||||
return $this->isPacket() ? $this->rawName() : NULL;
|
||||
}
|
||||
}
|
||||
}
|
@ -45,8 +45,8 @@ class PacketInfo extends Command
|
||||
if ($this->argument('ftn')) {
|
||||
$a = Address::findFTN($this->argument('ftn'));
|
||||
|
||||
} elseif (preg_match('/^(([0-9A-F]+)-)+/',$this->argument('file'),$m)) {
|
||||
$a = Address::findOrFail(hexdec($m[2]));
|
||||
} elseif (preg_match(sprintf('/^%s\.pkt$/',Packet::regex),$this->argument('file'),$m)) {
|
||||
$a = Address::findOrFail(hexdec($m[1]));
|
||||
}
|
||||
|
||||
foreach ($f as $packet) {
|
||||
|
@ -48,8 +48,8 @@ class PacketProcess extends Command
|
||||
if ($this->argument('ftn')) {
|
||||
$a = Address::findFTN($this->argument('ftn'));
|
||||
|
||||
} elseif (preg_match('/^(([0-9A-F]+)-([0-9]+))+/',$this->argument('file'),$m)) {
|
||||
$a = Address::findOrFail(hexdec($m[2]));
|
||||
} elseif (preg_match(sprintf('/^%s\.pkt$/',Packet::regex),$this->argument('file'),$m)) {
|
||||
$a = Address::findOrFail(hexdec($m[1]));
|
||||
|
||||
} else {
|
||||
$this->error('Unable to determine sender FTN address');
|
||||
|
Loading…
Reference in New Issue
Block a user