From f1d55ae202db6d7be9b36349490a570d1c77f18f Mon Sep 17 00:00:00 2001 From: lotusproxy <106042519+lotusproxy@users.noreply.github.com> Date: Wed, 14 Jun 2023 13:23:48 +0000 Subject: [PATCH] Add to General: standard uri-scheme --- app/Protocols/General.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/app/Protocols/General.php b/app/Protocols/General.php index afe7b6d9..d4bea751 100644 --- a/app/Protocols/General.php +++ b/app/Protocols/General.php @@ -33,6 +33,9 @@ class General if ($item['type'] === 'trojan') { $uri .= self::buildTrojan($user['uuid'], $item); } + if ($item['type'] === 'hysteria') { + $uri .= self::buildHysteria($user['uuid'], $item); + } } return base64_encode($uri); } @@ -110,4 +113,22 @@ class General return $uri; } + public static function buildHysteria($password, $server) + { + $name = rawurlencode($server['name']); + $query = http_build_query([ + 'protocol' => 'udp', + 'auth' => $password, + 'insecure' => $server['insecure'], + 'peer' => $server['server_name'], + 'upmbps' => $server['up_mbps'], + 'downmbps' => $server['up_mbps'], + 'alpn' => 'h3', + 'obfsParam' => $server['server_key'] + ]); + $uri = "hysteria://{$server['host']}:{$server['port']}?{$query}#{$name}"; + $uri .= "\r\n"; + return $uri; + } + }