From 9e2a66f1d54549dcba470d348b2a1b7d41e862e0 Mon Sep 17 00:00:00 2001 From: xboard Date: Mon, 20 Apr 2026 00:05:43 +0800 Subject: [PATCH] fix: backfill utls for legacy vless reality nodes --- ...35904_backfill_utls_for_legacy_servers.php | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 database/migrations/2026_04_19_235904_backfill_utls_for_legacy_servers.php diff --git a/database/migrations/2026_04_19_235904_backfill_utls_for_legacy_servers.php b/database/migrations/2026_04_19_235904_backfill_utls_for_legacy_servers.php new file mode 100644 index 0000000..0222030 --- /dev/null +++ b/database/migrations/2026_04_19_235904_backfill_utls_for_legacy_servers.php @@ -0,0 +1,48 @@ +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 + { + } +};