diff --git a/app/Protocols/General.php b/app/Protocols/General.php index e94f688..fc635f0 100644 --- a/app/Protocols/General.php +++ b/app/Protocols/General.php @@ -61,7 +61,7 @@ class General extends AbstractProtocol $str = str_replace( ['+', '/', '='], ['-', '_', ''], - base64_encode("{$protocol_settings['cipher']}:{$password}") + base64_encode(data_get($protocol_settings, 'cipher') . ":{$password}") ); $addr = Helper::wrapIPv6($server['host']); $plugin = data_get($protocol_settings, 'plugin'); @@ -84,11 +84,11 @@ class General extends AbstractProtocol "port" => (string) $server['port'], "id" => $uuid, "aid" => '0', - "net" => $server['protocol_settings']['network'], + "net" => data_get($server, 'protocol_settings.network'), "type" => "none", "host" => "", "path" => "", - "tls" => $protocol_settings['tls'] ? "tls" : "", + "tls" => data_get($protocol_settings, 'tls') ? "tls" : "", ]; if ($serverName = data_get($protocol_settings, 'tls_settings.server_name')) { $config['sni'] = $serverName; @@ -97,7 +97,7 @@ class General extends AbstractProtocol $config['fp'] = $fp; } - switch ($protocol_settings['network']) { + switch (data_get($protocol_settings, 'network')) { case 'tcp': if (data_get($protocol_settings, 'network_settings.header.type', 'none') !== 'none') { $config['type'] = data_get($protocol_settings, 'network_settings.header.type', 'http'); @@ -152,11 +152,11 @@ class General extends AbstractProtocol 'mode' => 'multi', //grpc传输模式 'security' => '', //传输层安全 tls/reality 'encryption' => 'none', //加密方式 - 'type' => $server['protocol_settings']['network'], //传输协议 + 'type' => data_get($server, 'protocol_settings.network'), //传输协议 'flow' => data_get($protocol_settings, 'flow'), ]; // 处理TLS - switch ($server['protocol_settings']['tls']) { + switch (data_get($server, 'protocol_settings.tls')) { case 1: $config['security'] = "tls"; if ($fp = Helper::getTlsFingerprint(data_get($protocol_settings, 'utls'))) { @@ -184,7 +184,7 @@ class General extends AbstractProtocol break; } // 处理传输协议 - switch ($server['protocol_settings']['network']) { + switch (data_get($server, 'protocol_settings.network')) { case 'ws': if ($path = data_get($protocol_settings, 'network_settings.path')) $config['path'] = $path; @@ -256,7 +256,7 @@ class General extends AbstractProtocol break; } - switch ($server['protocol_settings']['network']) { + switch (data_get($server, 'protocol_settings.network')) { case 'ws': $array['type'] = 'ws'; if ($path = data_get($protocol_settings, 'network_settings.path')) diff --git a/app/Protocols/QuantumultX.php b/app/Protocols/QuantumultX.php index 475cb40..8488e0a 100644 --- a/app/Protocols/QuantumultX.php +++ b/app/Protocols/QuantumultX.php @@ -46,7 +46,7 @@ class QuantumultX extends AbstractProtocol $addr = Helper::wrapIPv6($server['host']); $config = [ "shadowsocks={$addr}:{$server['port']}", - "method={$protocol_settings['cipher']}", + "method=" . data_get($protocol_settings, 'cipher'), "password={$password}", ]; diff --git a/app/Protocols/Shadowrocket.php b/app/Protocols/Shadowrocket.php index 950cf7e..37028e3 100644 --- a/app/Protocols/Shadowrocket.php +++ b/app/Protocols/Shadowrocket.php @@ -76,7 +76,7 @@ class Shadowrocket extends AbstractProtocol $str = str_replace( ['+', '/', '='], ['-', '_', ''], - base64_encode("{$protocol_settings['cipher']}:{$password}") + base64_encode(data_get($protocol_settings, 'cipher') . ":{$password}") ); $addr = Helper::wrapIPv6($server['host']); @@ -98,7 +98,7 @@ class Shadowrocket extends AbstractProtocol 'remark' => $server['name'], 'alterId' => 0 ]; - if ($protocol_settings['tls']) { + if (data_get($protocol_settings, 'tls')) { $config['tls'] = 1; if (data_get($protocol_settings, 'tls_settings')) { if (!!data_get($protocol_settings, 'tls_settings.allow_insecure')) @@ -352,7 +352,7 @@ class Shadowrocket extends AbstractProtocol } $params['insecure'] = data_get($protocol_settings, 'tls.allow_insecure'); if (isset($protocol_settings['hop_interval'])) { - $params['keepalive'] = $protocol_settings['hop_interval']; + $params['keepalive'] = data_get($protocol_settings, 'hop_interval'); } if (isset($server['ports'])) { $params['mport'] = $server['ports']; diff --git a/app/Protocols/SingBox.php b/app/Protocols/SingBox.php index 89578c8..b412787 100644 --- a/app/Protocols/SingBox.php +++ b/app/Protocols/SingBox.php @@ -434,8 +434,8 @@ class SingBox extends AbstractProtocol $array['flow'] = $flow; } - if ($protocol_settings['tls']) { - $tlsMode = (int) $protocol_settings['tls']; + if (data_get($protocol_settings, 'tls')) { + $tlsMode = (int) data_get($protocol_settings, 'tls', 0); $tlsConfig = [ 'enabled' => true, 'insecure' => $tlsMode === 2 diff --git a/app/Protocols/Surfboard.php b/app/Protocols/Surfboard.php index 7e14566..b59a595 100644 --- a/app/Protocols/Surfboard.php +++ b/app/Protocols/Surfboard.php @@ -89,7 +89,7 @@ class Surfboard extends AbstractProtocol "{$server['name']}=ss", "{$server['host']}", "{$server['port']}", - "encrypt-method={$protocol_settings['cipher']}", + "encrypt-method=" . data_get($protocol_settings, 'cipher'), "password={$password}", 'tfo=true', 'udp-relay=true'