Merge pull request #312 from NekoCareLab/new

Fixed Multiplt Vmess+TCP bugs for shadowrocket
This commit is contained in:
Xboard 2025-01-14 07:03:37 +08:00 committed by GitHub
commit fd4dc9064f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -96,8 +96,11 @@ class Shadowrocket implements ProtocolInterface
switch (data_get($protocol_settings, 'network')) {
case 'tcp':
$config['obfs'] = data_get($protocol_settings, 'network_settings.header.type');
$config['path'] = \Arr::ra(data_get($protocol_settings, 'network_settings.header.request.path', ['/']));
if (data_get($protocol_settings, 'network_settings.header.type', 'none') !== 'none') {
$config['obfs'] = data_get($protocol_settings, 'network_settings.header.type');
$config['path'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.path', ['/']));
$config['obfsParam'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.headers.Host', ['www.example.com']));
}
break;
case 'ws':
$config['obfs'] = "websocket";
@ -161,13 +164,18 @@ class Shadowrocket implements ProtocolInterface
}
switch (data_get($protocol_settings, 'network')) {
case 'tcp':
$config['obfs'] = data_get($protocol_settings, 'network_settings.header.type');
$config['path'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.path', ['/']));
$config['obfsParam'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.headers.Host', ['/']));
if (data_get($protocol_settings, 'network_settings.header.type', 'none') !== 'none') {
$config['obfs'] = data_get($protocol_settings, 'network_settings.header.type');
$config['path'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.path', ['/']));
$config['obfsParam'] = \Arr::random(data_get($protocol_settings, 'network_settings.header.request.headers.Host', ['www.example.com']));
}
break;
case 'ws':
$config['obfs'] = "websocket";
$config['path'] = data_get($protocol_settings, 'network_settings.path');
if (data_get($protocol_settings, 'network_settings.path')) {
$config['path'] = data_get($protocol_settings, 'network_settings.path');
}
if ($host = data_get($protocol_settings, 'network_settings.headers.Host')) {
$config['obfsParam'] = $host;
}