diff --git a/app/Utils/Shadowrocket.php b/app/Utils/Shadowrocket.php index bbf79974..493a5891 100644 --- a/app/Utils/Shadowrocket.php +++ b/app/Utils/Shadowrocket.php @@ -47,13 +47,13 @@ class Shadowrocket if ($server['network'] === 'grpc') { $config['obfs'] = "grpc"; if (isset($server['networkSettings'])) { - $grpcObject = json_decode($server['networkSettings'], true); - if (isset($grpcObject['serviceName'])) { - $config['obfsParam'] = json_encode([ - 'Host' => $grpcObject['serviceName'] - ]); - $config['path'] = '/'; - } + $grpcSettings = json_decode($server['networkSettings'], true); + if (isset($grpcSettings['serviceName']) && !empty($grpcSettings['serviceName'])) + $config['path'] = $grpcSettings['serviceName']; + if (isset($grpcSettings['host']) && !empty($grpcSettings['host'])) + $config['obfsParam'] = $grpcSettings['host']; + if (!isset($grpcSettings['host']) && !empty($tlsSettings['serverName'])) + $config['obfsParam'] = $tlsSettings['serverName']; } } $query = http_build_query($config, '', '&', PHP_QUERY_RFC3986);