Fix for invalid-zone validation comparing a string with an int

This commit is contained in:
Deon George 2024-05-21 21:56:18 +10:00
parent 51784df6a8
commit 17e3c69f07

View File

@ -307,10 +307,10 @@ class Message extends FTNBase
switch ($key) { switch ($key) {
// From Addresses // From Addresses
case 'fz': return Arr::get($this->src,'z'); case 'fz': return (int)Arr::get($this->src,'z');
case 'fn': return ($x=$this->src) ? Arr::get($x,'n') : Arr::get($this->header,'onet'); case 'fn': return (int)($x=$this->src) ? Arr::get($x,'n') : Arr::get($this->header,'onet');
case 'ff': return ($x=$this->src) ? Arr::get($x,'f') : Arr::get($this->header,'onode'); case 'ff': return (int)($x=$this->src) ? Arr::get($x,'f') : Arr::get($this->header,'onode');
case 'fp': return $this->mo->kludges->get('FMPT:') ?: Arr::get($this->src,'p',Arr::get($this->header,'opoint',0)); case 'fp': return (int)$this->mo->kludges->get('FMPT:') ?: Arr::get($this->src,'p',Arr::get($this->header,'opoint',0));
case 'fd': return Arr::get($this->src,'d'); case 'fd': return Arr::get($this->src,'d');
case 'fzone': case 'fzone':
@ -341,10 +341,10 @@ class Message extends FTNBase
// To Addresses // To Addresses
// Echomail doesnt have a zone, so we'll use the source zone // Echomail doesnt have a zone, so we'll use the source zone
case 'tz': return Arr::get($this->isEchomail() ? $this->src : $this->dst,'z'); case 'tz': return (int)Arr::get($this->isEchomail() ? $this->src : $this->dst,'z');
case 'tn': return Arr::get($this->header,'dnet'); case 'tn': return (int)Arr::get($this->header,'dnet');
case 'tf': return Arr::get($this->header,'dnode'); case 'tf': return (int)Arr::get($this->header,'dnode');
case 'tp': return $this->mo->kludges->get('TOPT:') ?: Arr::get($this->header,'dpoint',0); case 'tp': return (int)$this->mo->kludges->get('TOPT:') ?: Arr::get($this->header,'dpoint',0);
case 'tzone': case 'tzone':
// Use the zone if this class was called with it. // Use the zone if this class was called with it.
@ -360,6 +360,7 @@ class Message extends FTNBase
return Zone::where('zone_id',$this->tz) return Zone::where('zone_id',$this->tz)
->where('default',TRUE) ->where('default',TRUE)
->single(); ->single();
case 'tdomain': case 'tdomain':
// We'll use the zone's domain if this method class was called with a zone // We'll use the zone's domain if this method class was called with a zone
if ($this->zone && (($this->zone->domain->name === Arr::get($this->dst,'d')) || ! Arr::get($this->dst,'d'))) if ($this->zone && (($this->zone->domain->name === Arr::get($this->dst,'d')) || ! Arr::get($this->dst,'d')))