fix: backfill utls for legacy vless reality nodes
This commit is contained in:
@@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
// Backfill default utls for legacy vless reality nodes after the uTLS refactor.
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
if (!Schema::hasTable('v2_server')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DB::table('v2_server')
|
||||||
|
->where('type', 'vless')
|
||||||
|
->orderBy('id')
|
||||||
|
->chunkById(200, function ($servers) {
|
||||||
|
foreach ($servers as $server) {
|
||||||
|
$settings = json_decode($server->protocol_settings ?? '', true);
|
||||||
|
if (!is_array($settings) || (int) ($settings['tls'] ?? 0) != 2) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$existing = $settings['utls'] ?? null;
|
||||||
|
if (is_array($existing) && ($existing['enabled'] ?? false) === true) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$settings['utls'] = [
|
||||||
|
'enabled' => true,
|
||||||
|
'fingerprint' => is_array($existing) && !empty($existing['fingerprint'])
|
||||||
|
? $existing['fingerprint']
|
||||||
|
: 'chrome',
|
||||||
|
];
|
||||||
|
|
||||||
|
DB::table('v2_server')
|
||||||
|
->where('id', $server->id)
|
||||||
|
->update(['protocol_settings' => json_encode($settings)]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
}
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user