From da8b5018ea46578330a8768ba3db553570e86f8a Mon Sep 17 00:00:00 2001 From: xboard Date: Sat, 18 Apr 2026 16:07:22 +0800 Subject: [PATCH] fix: Shadowrocket Trojan whitelist bug and xhttp support --- app/Protocols/Shadowrocket.php | 3 +-- app/Support/AbstractProtocol.php | 4 ++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/Protocols/Shadowrocket.php b/app/Protocols/Shadowrocket.php index d7f3359..e17aae3 100644 --- a/app/Protocols/Shadowrocket.php +++ b/app/Protocols/Shadowrocket.php @@ -141,7 +141,7 @@ class Shadowrocket extends AbstractProtocol $config['obfsParam'] = $host; } break; - case 'h2': + case 'h2': $config['obfs'] = "h2"; if ($path = data_get($protocol_settings, 'network_settings.path')) { $config['path'] = $path; @@ -177,7 +177,6 @@ class Shadowrocket extends AbstractProtocol $config = [ 'tfo' => 1, 'remark' => $server['name'], - 'alterId' => 0 ]; // 判断是否开启xtls diff --git a/app/Support/AbstractProtocol.php b/app/Support/AbstractProtocol.php index 78a2c0d..d26156b 100644 --- a/app/Support/AbstractProtocol.php +++ b/app/Support/AbstractProtocol.php @@ -151,6 +151,10 @@ abstract class AbstractProtocol if (is_array($filterRule) && isset($filterRule['whitelist'])) { $allowedValues = $filterRule['whitelist']; $strict = $filterRule['strict'] ?? false; + // Normalize flat array ['tcp', 'ws'] to ['tcp' => '0.0.0', 'ws' => '0.0.0'] + if (!empty($allowedValues) && is_int(array_key_first($allowedValues))) { + $allowedValues = array_fill_keys($allowedValues, '0.0.0'); + } if ($strict) { if ($actualValue === null) { return false;