Compare commits

...

2 Commits

Author SHA1 Message Date
6c7da7a220 When decompressing compressed messages, dont barf if we try to decompress the same attribute twice
All checks were successful
Create Docker Image / Build Docker Image (x86_64) (push) Successful in 39s
Create Docker Image / Build Docker Image (arm64) (push) Successful in 1m47s
Create Docker Image / Final Docker Image Manifest (push) Successful in 9s
2024-05-13 17:06:51 +10:00
b008cb20d2 Fix recording of netmails, when they contain taglines and origin lines 2024-05-13 17:06:51 +10:00
3 changed files with 44 additions and 2 deletions

View File

@ -28,7 +28,13 @@ class CompressedString implements CastsAttributes
? stream_get_contents($value)
: $value;
return $value ? zstd_uncompress(base64_decode($value)) : '';
// If we get an error decompressing, it might not be zstd (or its already been done)
try {
return $value ? zstd_uncompress(base64_decode($value)) : '';
} catch (\ErrorException $e) {
return $value;
}
}
/**

View File

@ -116,8 +116,12 @@ class MessageProcess implements ShouldQueue
$o->cost = $this->msg->cost;
$o->msgid = $this->msg->msgid;
$o->tagline = $this->msg->tagline;
$o->tearline = $this->msg->tearline;
$o->origin = $this->msg->origin;
$o->subject = $this->msg->subject;
$o->msg = $this->msg->message;
$o->msg = $this->msg->message_src."\r";
foreach ($this->msg->via as $v)
$o->msg .= sprintf("\01Via %s\r",$v);
@ -372,6 +376,10 @@ class MessageProcess implements ShouldQueue
$o->msgid = $this->msg->msgid;
$o->replyid = $this->msg->replyid;
$o->tagline = $this->msg->tagline;
$o->tearline = $this->msg->tearline;
$o->origin = $this->msg->origin;
$o->msg = $this->msg->message_src."\r";
$o->msg_src = $this->msg->message_src;
$o->msg_crc = md5($this->msg->message);

View File

@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('netmails', function (Blueprint $table) {
$table->string('origin')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('netmail', function (Blueprint $table) {
$table->dropColumn('origin');
});
}
};