Auto create FTN address for intransit netmail when the destination is not known.
This commit is contained in:
parent
9a8ee1aa2b
commit
6284016400
@ -435,6 +435,48 @@ class Packet extends FTNBase implements \Iterator, \Countable
|
|||||||
Log::info(sprintf('%s:- Message [%s] has errors',self::LOGKEY,$msg->msgid));
|
Log::info(sprintf('%s:- Message [%s] has errors',self::LOGKEY,$msg->msgid));
|
||||||
|
|
||||||
// If the from address doenst exist, we'll create a new entry
|
// If the from address doenst exist, we'll create a new entry
|
||||||
|
if ($msg->errors->messages()->has('to')) {
|
||||||
|
$e = NULL;
|
||||||
|
|
||||||
|
try {
|
||||||
|
Address::unguard();
|
||||||
|
$ao = Address::firstOrNew([
|
||||||
|
'zone_id' => $msg->tzone->id,
|
||||||
|
'region_id' => 0,
|
||||||
|
'host_id' => $msg->tn,
|
||||||
|
'node_id' => $msg->tf,
|
||||||
|
'point_id' => $msg->tp,
|
||||||
|
]);
|
||||||
|
Address::reguard();
|
||||||
|
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Log::error(sprintf('%s:! Error finding/creating address [%s] for message',self::LOGKEY,$msg->tboss));
|
||||||
|
}
|
||||||
|
|
||||||
|
// This shouldnt happen
|
||||||
|
if ($e || $ao->exists) {
|
||||||
|
Log::error(sprintf('%s:! Unexpected error attempting to create address [%s]',self::LOGKEY,$msg->tboss));
|
||||||
|
$this->errors->push($msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$ao->active = TRUE;
|
||||||
|
$ao->role = Address::NODE_UNKNOWN;
|
||||||
|
|
||||||
|
System::unguard();
|
||||||
|
$so = System::firstOrCreate([
|
||||||
|
'name' => 'Discovered System',
|
||||||
|
'sysop' => 'Unknown',
|
||||||
|
'location' => '',
|
||||||
|
'active' => TRUE,
|
||||||
|
]);
|
||||||
|
System::reguard();
|
||||||
|
|
||||||
|
$so->addresses()->save($ao);
|
||||||
|
|
||||||
|
Log::alert(sprintf('%s: - To FTN is not defined, creating new entry for [%s] (%d)',self::LOGKEY,$msg->tboss,$ao->id));
|
||||||
|
}
|
||||||
|
|
||||||
if ($msg->errors->messages()->has('from')) {
|
if ($msg->errors->messages()->has('from')) {
|
||||||
$e = NULL;
|
$e = NULL;
|
||||||
|
|
||||||
@ -475,8 +517,9 @@ class Packet extends FTNBase implements \Iterator, \Countable
|
|||||||
$so->addresses()->save($ao);
|
$so->addresses()->save($ao);
|
||||||
|
|
||||||
Log::alert(sprintf('%s: - From FTN is not defined, creating new entry for [%s] (%d)',self::LOGKEY,$msg->fboss,$ao->id));
|
Log::alert(sprintf('%s: - From FTN is not defined, creating new entry for [%s] (%d)',self::LOGKEY,$msg->fboss,$ao->id));
|
||||||
|
}
|
||||||
|
|
||||||
} elseif($msg->errors->messages()->has('user_from') || $msg->errors->messages()->has('user_to')) {
|
if ($msg->errors->messages()->has('user_from') || $msg->errors->messages()->has('user_to')) {
|
||||||
Log::error(sprintf('%s:! Skipping message [%s] due to errors (%s)...',self::LOGKEY,$msg->msgid,join(',',$msg->errors->messages()->keys())));
|
Log::error(sprintf('%s:! Skipping message [%s] due to errors (%s)...',self::LOGKEY,$msg->msgid,join(',',$msg->errors->messages()->keys())));
|
||||||
$this->errors->push($msg);
|
$this->errors->push($msg);
|
||||||
return;
|
return;
|
||||||
|
@ -42,7 +42,7 @@ final class Test extends Process
|
|||||||
|
|
||||||
$reply .= "\r";
|
$reply .= "\r";
|
||||||
$reply .= "\r";
|
$reply .= "\r";
|
||||||
$reply .= "------------------------------ BEING MESSAGE ------------------------------\r";
|
$reply .= "------------------------------ BEGIN MESSAGE ------------------------------\r";
|
||||||
$reply .= sprintf("TO: %s\r",$msg->user_to);
|
$reply .= sprintf("TO: %s\r",$msg->user_to);
|
||||||
$reply .= sprintf("SUBJECT: %s\r",$msg->subject);
|
$reply .= sprintf("SUBJECT: %s\r",$msg->subject);
|
||||||
$reply .= $msg->message."\r";
|
$reply .= $msg->message."\r";
|
||||||
|
@ -122,7 +122,8 @@ class MessageProcess implements ShouldQueue
|
|||||||
|
|
||||||
// If in transit, store for collection
|
// If in transit, store for collection
|
||||||
} else {
|
} else {
|
||||||
Log::info(sprintf('Netmail [%s] in transit to (%s) [%s] from (%s) [%s].',
|
Log::info(sprintf('%s:Netmail [%s] in transit to (%s) [%s] from (%s) [%s].',
|
||||||
|
self::LOGKEY,
|
||||||
$this->msg->msgid,
|
$this->msg->msgid,
|
||||||
$this->msg->user_to,$this->msg->tftn,
|
$this->msg->user_to,$this->msg->tftn,
|
||||||
$this->msg->user_from,$this->msg->fftn,
|
$this->msg->user_from,$this->msg->fftn,
|
||||||
|
@ -128,7 +128,8 @@ class NodelistImport implements ShouldQueue
|
|||||||
$node = 0;
|
$node = 0;
|
||||||
|
|
||||||
switch ($fields[0]) {
|
switch ($fields[0]) {
|
||||||
case 'Zone': $zone = $fields[1];
|
case 'Zone':
|
||||||
|
$zone = $fields[1];
|
||||||
Zone::unguard();
|
Zone::unguard();
|
||||||
$zo = Zone::firstOrNew([
|
$zo = Zone::firstOrNew([
|
||||||
'zone_id'=>$zone,
|
'zone_id'=>$zone,
|
||||||
@ -364,7 +365,6 @@ class NodelistImport implements ShouldQueue
|
|||||||
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Log::error(sprintf('%s:Error with line [%s] (%s)',self::LOGKEY,$line,$e->getMessage()),['fields'=>$fields]);
|
Log::error(sprintf('%s:Error with line [%s] (%s)',self::LOGKEY,$line,$e->getMessage()),['fields'=>$fields]);
|
||||||
throw new \Exception($e->getMessage());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! ($c % 100)) {
|
if (! ($c % 100)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user