mirror of https://github.com/ospab/ostp.git
Remove Reality/XTLS UI from ostp-gui, ostp-flutter, ostp-control
This commit is contained in:
parent
a9e4511190
commit
3c54aba63f
|
|
@ -119,14 +119,6 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
||||||
"enabled": muxEnabled,
|
"enabled": muxEnabled,
|
||||||
"sessions": int.tryParse(muxSessions) ?? 2,
|
"sessions": int.tryParse(muxSessions) ?? 2,
|
||||||
},
|
},
|
||||||
"reality": {
|
|
||||||
"enabled": widget.prefs.getBool('reality_enabled') ?? false,
|
|
||||||
"dest": "",
|
|
||||||
"private_key": "",
|
|
||||||
"pbk": widget.prefs.getString('pbk') ?? "",
|
|
||||||
"sid": widget.prefs.getString('sid') ?? "",
|
|
||||||
"sni_list": []
|
|
||||||
},
|
|
||||||
"tun": {
|
"tun": {
|
||||||
"enable": true,
|
"enable": true,
|
||||||
"stack": tunStack
|
"stack": tunStack
|
||||||
|
|
@ -215,14 +207,6 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
||||||
"enabled": muxEnabled,
|
"enabled": muxEnabled,
|
||||||
"sessions": int.tryParse(muxSessions) ?? 2,
|
"sessions": int.tryParse(muxSessions) ?? 2,
|
||||||
},
|
},
|
||||||
"reality": {
|
|
||||||
"enabled": widget.prefs.getBool('reality_enabled') ?? false,
|
|
||||||
"dest": "",
|
|
||||||
"private_key": "",
|
|
||||||
"pbk": widget.prefs.getString('pbk') ?? "",
|
|
||||||
"sid": widget.prefs.getString('sid') ?? "",
|
|
||||||
"sni_list": []
|
|
||||||
},
|
|
||||||
"tun": {
|
"tun": {
|
||||||
"enable": true,
|
"enable": true,
|
||||||
"stack": tunStack
|
"stack": tunStack
|
||||||
|
|
@ -336,7 +320,6 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
||||||
await widget.prefs.setString('mtu', mtu.toString());
|
await widget.prefs.setString('mtu', mtu.toString());
|
||||||
await widget.prefs.setString('transport_mode', mode['t'] as String);
|
await widget.prefs.setString('transport_mode', mode['t'] as String);
|
||||||
await widget.prefs.setBool('wss', mode['w'] as bool);
|
await widget.prefs.setBool('wss', mode['w'] as bool);
|
||||||
await widget.prefs.setBool('reality_enabled', mode['r'] as bool);
|
|
||||||
_updateLatestConfigJson();
|
_updateLatestConfigJson();
|
||||||
|
|
||||||
setState(() {
|
setState(() {
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,6 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||||
bool _obscureKey = true;
|
bool _obscureKey = true;
|
||||||
bool _debugMode = false;
|
bool _debugMode = false;
|
||||||
bool _wss = false;
|
bool _wss = false;
|
||||||
bool _realityEnabled = false;
|
|
||||||
String _transportMode = 'udp'; // 'udp' | 'uot'
|
String _transportMode = 'udp'; // 'udp' | 'uot'
|
||||||
String _tunStack = 'ostp'; // 'system' | 'ostp'
|
String _tunStack = 'ostp'; // 'system' | 'ostp'
|
||||||
bool _muxEnabled = false;
|
bool _muxEnabled = false;
|
||||||
|
|
@ -58,7 +57,6 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||||
_pbkCtrl = TextEditingController(text: widget.prefs.getString('pbk') ?? '');
|
_pbkCtrl = TextEditingController(text: widget.prefs.getString('pbk') ?? '');
|
||||||
_sidCtrl = TextEditingController(text: widget.prefs.getString('sid') ?? '');
|
_sidCtrl = TextEditingController(text: widget.prefs.getString('sid') ?? '');
|
||||||
_wss = widget.prefs.getBool('wss') ?? false;
|
_wss = widget.prefs.getBool('wss') ?? false;
|
||||||
_realityEnabled = widget.prefs.getBool('reality_enabled') ?? false;
|
|
||||||
_transportMode = widget.prefs.getString('transport_mode') ?? 'udp';
|
_transportMode = widget.prefs.getString('transport_mode') ?? 'udp';
|
||||||
_tunStack = widget.prefs.getString('tun_stack') ?? 'ostp';
|
_tunStack = widget.prefs.getString('tun_stack') ?? 'ostp';
|
||||||
_debugMode = widget.prefs.getBool('debug_mode') ?? false;
|
_debugMode = widget.prefs.getBool('debug_mode') ?? false;
|
||||||
|
|
@ -96,7 +94,6 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||||
widget.prefs.setString('ex_processes', _processesCtrl.text.trim());
|
widget.prefs.setString('ex_processes', _processesCtrl.text.trim());
|
||||||
widget.prefs.setBool('debug_mode', _debugMode);
|
widget.prefs.setBool('debug_mode', _debugMode);
|
||||||
widget.prefs.setBool('wss', _wss);
|
widget.prefs.setBool('wss', _wss);
|
||||||
widget.prefs.setBool('reality_enabled', _realityEnabled);
|
|
||||||
widget.prefs.setString('transport_mode', _transportMode);
|
widget.prefs.setString('transport_mode', _transportMode);
|
||||||
widget.prefs.setString('tun_stack', _tunStack);
|
widget.prefs.setString('tun_stack', _tunStack);
|
||||||
widget.prefs.setString('stealth_sni', _stealthSniCtrl.text.trim());
|
widget.prefs.setString('stealth_sni', _stealthSniCtrl.text.trim());
|
||||||
|
|
@ -234,7 +231,6 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||||
_pbkCtrl.text = uri.queryParameters['pbk'] ?? '';
|
_pbkCtrl.text = uri.queryParameters['pbk'] ?? '';
|
||||||
_sidCtrl.text = uri.queryParameters['sid'] ?? '';
|
_sidCtrl.text = uri.queryParameters['sid'] ?? '';
|
||||||
_wss = uri.queryParameters['wss'] == 'true';
|
_wss = uri.queryParameters['wss'] == 'true';
|
||||||
_realityEnabled = uri.queryParameters['reality'] == 'true';
|
|
||||||
final type = uri.queryParameters['type'] ?? 'udp';
|
final type = uri.queryParameters['type'] ?? 'udp';
|
||||||
_transportMode = type == 'tcp' || type == 'http' ? 'uot' : 'udp';
|
_transportMode = type == 'tcp' || type == 'http' ? 'uot' : 'udp';
|
||||||
_importCtrl.clear();
|
_importCtrl.clear();
|
||||||
|
|
@ -400,8 +396,6 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||||
});
|
});
|
||||||
}),
|
}),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
_buildTextField('Reality PublicKey (pbk)', _pbkCtrl, hint: 'Публичный ключ сервера'),
|
|
||||||
_buildTextField('Reality ShortId (sid)', _sidCtrl, hint: 'Опционально (необязательно)'),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -31,8 +31,7 @@ const translations = {
|
||||||
label_mtu: 'MTU Size',
|
label_mtu: 'MTU Size',
|
||||||
label_transport: 'Transport Protocol',
|
label_transport: 'Transport Protocol',
|
||||||
label_sni: 'Stealth SNI (Fake Host)',
|
label_sni: 'Stealth SNI (Fake Host)',
|
||||||
label_pbk: 'Reality PublicKey (pbk)',
|
|
||||||
label_sid: 'Reality ShortId (sid)',
|
|
||||||
label_mtu: 'MTU Size',
|
label_mtu: 'MTU Size',
|
||||||
label_mux: 'Multiplexing (Mux)',
|
label_mux: 'Multiplexing (Mux)',
|
||||||
mux_hint: 'Run multiple streams over one connection',
|
mux_hint: 'Run multiple streams over one connection',
|
||||||
|
|
@ -92,8 +91,7 @@ const translations = {
|
||||||
label_mtu: 'Размер MTU',
|
label_mtu: 'Размер MTU',
|
||||||
label_transport: 'Транспортный протокол',
|
label_transport: 'Транспортный протокол',
|
||||||
label_sni: 'Маскировочный SNI',
|
label_sni: 'Маскировочный SNI',
|
||||||
label_pbk: 'Reality PublicKey (pbk)',
|
|
||||||
label_sid: 'Reality ShortId (sid)',
|
|
||||||
label_mtu: 'Размер MTU',
|
label_mtu: 'Размер MTU',
|
||||||
label_mux: 'Мультиплексирование (Mux)',
|
label_mux: 'Мультиплексирование (Mux)',
|
||||||
mux_hint: 'Несколько потоков через одно соединение',
|
mux_hint: 'Несколько потоков через одно соединение',
|
||||||
|
|
|
||||||
|
|
@ -220,13 +220,6 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="field-group">
|
<div class="field-group">
|
||||||
<label class="field-label" for="in-pbk" data-i18n="label_pbk">Reality PublicKey (pbk)</label>
|
|
||||||
<input id="in-pbk" class="field-input" type="text" placeholder="Leave empty to disable Reality" spellcheck="false" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="field-group">
|
|
||||||
<label class="field-label" for="in-sid" data-i18n="label_sid">Reality ShortId (sid)</label>
|
|
||||||
<input id="in-sid" class="field-input" type="text" placeholder="Optional" spellcheck="false" />
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="field-group">
|
<div class="field-group">
|
||||||
|
|
|
||||||
|
|
@ -284,8 +284,7 @@ async function loadConfigIntoForm() {
|
||||||
inTransport.value = c.transport?.mode || 'udp';
|
inTransport.value = c.transport?.mode || 'udp';
|
||||||
inSni.value = c.transport?.stealth_sni || '';
|
inSni.value = c.transport?.stealth_sni || '';
|
||||||
inWss.checked = !!c.transport?.wss;
|
inWss.checked = !!c.transport?.wss;
|
||||||
inPbk.value = c.reality?.pbk || '';
|
|
||||||
inSid.value = c.reality?.sid || '';
|
|
||||||
inMtu.value = c.mtu || '';
|
inMtu.value = c.mtu || '';
|
||||||
inTun.checked = !!c.tun?.enable;
|
inTun.checked = !!c.tun?.enable;
|
||||||
if (inKillSwitch) inKillSwitch.checked = !!c.tun?.kill_switch;
|
if (inKillSwitch) inKillSwitch.checked = !!c.tun?.kill_switch;
|
||||||
|
|
@ -347,20 +346,6 @@ async function handleSave(silent = false) {
|
||||||
rawConfig.transport.stealth_sni = inSni.value.trim() || undefined;
|
rawConfig.transport.stealth_sni = inSni.value.trim() || undefined;
|
||||||
rawConfig.transport.wss = inWss.checked;
|
rawConfig.transport.wss = inWss.checked;
|
||||||
|
|
||||||
const pbk = inPbk.value.trim();
|
|
||||||
if (pbk) {
|
|
||||||
rawConfig.reality = {
|
|
||||||
enabled: true,
|
|
||||||
dest: '',
|
|
||||||
private_key: '',
|
|
||||||
pbk: pbk,
|
|
||||||
sid: inSid.value.trim(),
|
|
||||||
sni_list: []
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
delete rawConfig.reality;
|
|
||||||
}
|
|
||||||
|
|
||||||
const mtuStr = inMtu.value.trim();
|
const mtuStr = inMtu.value.trim();
|
||||||
if (mtuStr) rawConfig.mtu = parseInt(mtuStr, 10);
|
if (mtuStr) rawConfig.mtu = parseInt(mtuStr, 10);
|
||||||
else delete rawConfig.mtu;
|
else delete rawConfig.mtu;
|
||||||
|
|
@ -508,12 +493,7 @@ window.addEventListener('DOMContentLoaded', async () => {
|
||||||
rawConfig.transport.mode = mode.t;
|
rawConfig.transport.mode = mode.t;
|
||||||
rawConfig.transport.wss = mode.w;
|
rawConfig.transport.wss = mode.w;
|
||||||
|
|
||||||
if (mode.r) {
|
|
||||||
rawConfig.reality = rawConfig.reality || {};
|
|
||||||
rawConfig.reality.enabled = true;
|
|
||||||
} else if (rawConfig.reality) {
|
|
||||||
rawConfig.reality.enabled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
await invoke('save_config', { jsonContent: JSON.stringify(rawConfig, null, 2) });
|
await invoke('save_config', { jsonContent: JSON.stringify(rawConfig, null, 2) });
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue