New attempt to making sure echomails have origin and senders path/seenby details (rework of #45d7823)
This commit is contained in:
parent
e8f4bf93bd
commit
f639e3ffab
@ -364,26 +364,10 @@ class MessageProcess implements ShouldQueue
|
||||
if ($x=$this->msg->fboss_o) {
|
||||
$o->fftn_id = $x->id;
|
||||
|
||||
/*
|
||||
// Make sure our sender and packet source are in the path
|
||||
if (! $this->msg->path->contains($x->ftn)) {
|
||||
Log::alert(sprintf('%s:? Echomail adding sender to PATH [%s].',self::LOGKEY,$x->ftn));
|
||||
|
||||
$this->msg->path->push($x->ftn);
|
||||
}
|
||||
*/
|
||||
|
||||
} else {
|
||||
$o->fftn_id = NULL; // @todo This should be the node that originated the message - but since that node is not in the DB it would be null
|
||||
}
|
||||
|
||||
/*
|
||||
if (! $this->msg->path->contains($this->pktsrc->id)) {
|
||||
Log::alert(sprintf('%s:? Echomail adding pktsrc to PATH [%s].',self::LOGKEY,$x->ftn));
|
||||
$this->msg->path->push($this->pktsrc->id);
|
||||
}
|
||||
*/
|
||||
|
||||
$o->echoarea_id = $ea->id;
|
||||
$o->msgid = $this->msg->msgid;
|
||||
$o->replyid = $this->msg->replyid;
|
||||
@ -395,6 +379,7 @@ class MessageProcess implements ShouldQueue
|
||||
$o->set_path = $this->msg->path;
|
||||
$o->set_seenby = $this->msg->seenby;
|
||||
$o->set_recvtime = $this->recvtime;
|
||||
$o->set_sender = $this->pktsrc->id;
|
||||
// Record receiving packet and sender
|
||||
$o->set_pkt = $this->packet;
|
||||
|
||||
|
@ -24,6 +24,7 @@ final class Echomail extends Model implements Packet
|
||||
private Collection $set_path;
|
||||
private Carbon $set_recvtime;
|
||||
private string $set_pkt;
|
||||
private string $set_sender;
|
||||
private bool $no_export = FALSE;
|
||||
|
||||
protected $casts = [
|
||||
@ -52,6 +53,7 @@ final class Echomail extends Model implements Packet
|
||||
case 'no_export':
|
||||
case 'set_path':
|
||||
case 'set_pkt':
|
||||
case 'set_sender':
|
||||
case 'set_recvtime':
|
||||
case 'set_seenby':
|
||||
$this->{$key} = $value;
|
||||
@ -69,13 +71,25 @@ final class Echomail extends Model implements Packet
|
||||
// @todo if the message is updated with new SEEN-BY's from another route, we'll delete the pending export for systems (if there is one)
|
||||
static::created(function($model) {
|
||||
$rogue = collect();
|
||||
$seenby = NULL;
|
||||
$seenby = collect();
|
||||
$path = collect();
|
||||
|
||||
// Parse PATH
|
||||
if ($model->set_path->count())
|
||||
$path = self::parseAddresses('path',$model->set_path,$model->fftn->zone,$rogue);
|
||||
|
||||
// Make sure our sender is first in the path
|
||||
if (! $path->contains($model->fftn_id)) {
|
||||
Log::alert(sprintf('%s:? Echomail adding sender to start of PATH [%s].',self::LOGKEY,$model->fftn_id));
|
||||
$path->prepend($model->fftn_id);
|
||||
}
|
||||
|
||||
// Make sure our pktsrc is last in the path
|
||||
if (isset($model->set_sender) && (! $path->contains($model->set_sender))) {
|
||||
Log::alert(sprintf('%s:? Echomail adding pktsrc to end of PATH [%s].',self::LOGKEY,$model->set_sender));
|
||||
$path->push($model->set_sender);
|
||||
}
|
||||
|
||||
// Save the Path
|
||||
$ppoid = NULL;
|
||||
foreach ($path as $aoid) {
|
||||
@ -94,6 +108,18 @@ final class Echomail extends Model implements Packet
|
||||
if ($model->set_seenby->count())
|
||||
$seenby = self::parseAddresses('seenby',$model->set_seenby,$model->fftn->zone,$rogue);
|
||||
|
||||
// Make sure our sender is first in the seenby
|
||||
if (! $seenby->contains($model->fftn_id)) {
|
||||
Log::alert(sprintf('%s:? Echomail adding sender to SEENBY [%s].',self::LOGKEY,$model->fftn_id));
|
||||
$seenby->push($model->fftn_id);
|
||||
}
|
||||
|
||||
// Make sure our pktsrc is last in the seenby
|
||||
if (isset($model->set_sender) && (! $seenby->contains($model->set_sender))) {
|
||||
Log::alert(sprintf('%s:? Echomail adding pktsrc to SEENBY [%s].',self::LOGKEY,$model->set_sender));
|
||||
$seenby->push($model->set_sender);
|
||||
}
|
||||
|
||||
if (count($rogue)) {
|
||||
$model->rogue_seenby = $rogue;
|
||||
$model->save();
|
||||
|
@ -44,6 +44,10 @@ use App\Classes\FTN\Message;
|
||||
<div class="col-8">
|
||||
SEENBY: <br><strong class="highlight">{!! optimize_path($msg->seenby->pluck('ftn2d'))->join('</strong>, <strong class="highlight">') !!}</strong>
|
||||
</div>
|
||||
|
||||
@if ($msg->rogue_seenby->count())
|
||||
<br><small>[<strong>NOTE</strong>: Some seen-by values couldnt be identified - ({{ $msg->rogue_seenby->join(',') }})]</small>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@ -59,6 +63,10 @@ use App\Classes\FTN\Message;
|
||||
<div class="row pb-2">
|
||||
<div class="col-8">
|
||||
PATH: <br><strong class="highlight">{!! optimize_path($msg->pathorder())->join('</strong> -> <strong class="highlight">') !!}</strong>
|
||||
|
||||
@if ($msg->rogue_path->count())
|
||||
<br><small>[<strong>NOTE</strong>: Some path values couldnt be identified - ({{ $msg->rogue_path->join(',') }})]</small>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user