Improvements for finding intransit netmails to upstream and peer hubs

This commit is contained in:
Deon George 2024-09-08 18:57:48 +10:00
parent 86e7e10443
commit 0b08da9e04
3 changed files with 9 additions and 3 deletions

View File

@ -277,7 +277,7 @@ class Node
public function originate(Address $o): void public function originate(Address $o): void
{ {
$this->originate = $o; $this->originate = $o;
$this->ftns_authed = $o->system->match($o->zone); $this->ftns_authed = $o->system->match($o->zone,Address::NODE_ALL);
} }
/** /**

View File

@ -67,7 +67,6 @@ class MailSend #implements ShouldQueue
} }
}) })
->filter(function($item) { ->filter(function($item) {
if ($item->ftn3d === '1337:1/100') dump(['item'=>$item,'ftn'=>$item->ftn,'autohold'=>$item->system->authold,'pollmode'=>$item->system->pollmode,'crash'=>$this->crash]);
if ($item->system->autohold) if ($item->system->autohold)
return NULL; return NULL;

View File

@ -1193,10 +1193,17 @@ class Address extends Model
*/ */
public function netmailWaiting(): Builder public function netmailWaiting(): Builder
{ {
// Addresses that our downstream of this address, except anybody that has session details with us
$ours = our_nodes($this->zone->domain)->pluck('id');
$addresses = $this->downstream()
->filter(fn($item)=>! $ours->contains($item->id))
->merge($this->system->match($this->zone,Address::NODE_ALL));
$netmails = $this $netmails = $this
->UncollectedNetmail() ->UncollectedNetmail()
->select('netmails.id') ->select('netmails.id')
->whereIn('addresses.id',$this->downlinks()->add($this)->pluck('id')) ->whereIn('addresses.id',$addresses->pluck('id'))
->groupBy(['netmails.id']) ->groupBy(['netmails.id'])
->get(); ->get();