New algorithm for calculating packet name, EMSI/BINKP inbound processing tested, Netmail rejection and intransit processing

This commit is contained in:
Deon George
2021-07-24 00:53:35 +10:00
parent 2fdc6eabad
commit ee30ef92c3
12 changed files with 184 additions and 54 deletions

View File

@@ -163,7 +163,7 @@ class Message extends FTNBase
*
* @param string $msg
* @param Domain|null $domain
* @return static
* @return Message
* @throws InvalidPacketException
*/
public static function parseMessage(string $msg,Domain $domain=NULL): self

View File

@@ -62,7 +62,7 @@ class Packet extends FTNBase
{
$this->messages = collect();
$this->domain = NULL;
$this->name = sprintf('%08x',Carbon::now()->timestamp);
$this->name = sprintf('%08x',timew());
// If we are creating an outbound packet, we need to set our header
if ($o)

View File

@@ -19,7 +19,7 @@ abstract class Process
/**
* This function will format text to static::MSG_WIDTH, as well as adding the logo.
*/
protected static function format_msg(string $text): string
public static function format_msg(string $text,array $logo = []): string
{
$msg = utf8_decode(join("\r",static::msg_header()))."\r";
$c = 0;
@@ -29,8 +29,8 @@ abstract class Process
$ll = '';
// Add our logo
if ($c<count(static::$logo)) {
$line = utf8_decode(Arr::get(static::$logo,$c++));
if ($c<count($logo)) {
$line = utf8_decode(Arr::get($logo,$c++));
$ll = $line.' ';
}
@@ -60,8 +60,8 @@ abstract class Process
}
// In case our text is shorter than the loo
for ($c; $c<count(static::$logo);$c++)
$msg .= utf8_decode(Arr::get(static::$logo,$c))."\r";
for ($c; $c<count($logo);$c++)
$msg .= utf8_decode(Arr::get($logo,$c))."\r";
return $msg;
}

View File

@@ -16,7 +16,7 @@ use App\Models\{Netmail,Setup};
*/
final class Ping extends Process
{
protected static array $logo = [
private static array $logo = [
'ÚÄ¿þÚÄ¿ÚÄ¿',
'³ ³Â³ ³Àij',
'ÃÄÙÁÁ ÁÄÄÙ'
@@ -29,7 +29,8 @@ final class Ping extends Process
Log::info(sprintf('Processing PING message from (%s) [%s]',$msg->user_from,$msg->fftn));
$reply = sprintf("Your ping was received here on %s and it took %s to get here.\r",
$reply = sprintf("Your ping was received here on %s and it looks like you sent it on %s. If that is correct, then it took %s to get here.\r",
$msg->date->toDateTimeString(),
Carbon::now()->toDateTimeString(),
$msg->date->diffForHumans(['parts'=>3,'syntax'=>CarbonInterface::DIFF_ABSOLUTE])
);
@@ -46,7 +47,7 @@ final class Ping extends Process
$o->subject = 'Ping Reply';
$o->fftn_id = ($x=$msg->tftn_o) ? $x->id : NULL;
$o->tftn_id = ($x=$msg->fftn_o) ? $x->id : NULL;
$o->msg = static::format_msg($reply);
$o->msg = static::format_msg($reply,self::$logo);
$o->reply = $msg->msgid;
$o->tagline = 'My ping pong opponent was not happy with my serve. He kept returning it.';