new: add seperated VPN service mode
This commit is contained in:
@@ -214,7 +214,8 @@
|
||||
"serviceModes": {
|
||||
"proxy": "Proxy Service Only",
|
||||
"systemProxy": "Set System Proxy",
|
||||
"tun": "VPN"
|
||||
"tun": "VPN",
|
||||
"tunService": "VPN Service"
|
||||
},
|
||||
"section": {
|
||||
"route": "Route Options",
|
||||
|
||||
@@ -191,6 +191,7 @@ class SingBoxConfigOptionRepositoryImpl
|
||||
enableClashApi: persisted.enableClashApi,
|
||||
clashApiPort: persisted.clashApiPort,
|
||||
enableTun: persisted.serviceMode == ServiceMode.tun,
|
||||
enableTunService: persisted.serviceMode == ServiceMode.tunService,
|
||||
setSystemProxy: persisted.serviceMode == ServiceMode.systemProxy,
|
||||
bypassLan: persisted.bypassLan,
|
||||
allowConnectionFromLan: persisted.allowConnectionFromLan,
|
||||
|
||||
@@ -159,11 +159,11 @@ class ConnectionRepositoryImpl
|
||||
await $(
|
||||
TaskEither(() async {
|
||||
if (options.enableTun) {
|
||||
// final hasPrivilege = await platformSource.checkPrivilege();
|
||||
// if (!hasPrivilege) {
|
||||
// loggy.warning("missing privileges for tun mode");
|
||||
// return left(const MissingPrivilege());
|
||||
// }
|
||||
final hasPrivilege = await platformSource.checkPrivilege();
|
||||
if (!hasPrivilege) {
|
||||
loggy.warning("missing privileges for tun mode");
|
||||
return left(const MissingPrivilege());
|
||||
}
|
||||
}
|
||||
return right(unit);
|
||||
}),
|
||||
@@ -192,11 +192,11 @@ class ConnectionRepositoryImpl
|
||||
await $(
|
||||
TaskEither(() async {
|
||||
if (options.enableTun) {
|
||||
// final hasPrivilege = await platformSource.checkPrivilege();
|
||||
// if (!hasPrivilege) {
|
||||
// loggy.warning("missing privileges for tun mode");
|
||||
// return left(const MissingPrivilege());
|
||||
// }
|
||||
final hasPrivilege = await platformSource.checkPrivilege();
|
||||
if (!hasPrivilege) {
|
||||
loggy.warning("missing privileges for tun mode");
|
||||
return left(const MissingPrivilege());
|
||||
}
|
||||
}
|
||||
return right(unit);
|
||||
}),
|
||||
|
||||
@@ -6,7 +6,8 @@ import 'package:json_annotation/json_annotation.dart';
|
||||
enum ServiceMode {
|
||||
proxy("proxy"),
|
||||
systemProxy("system-proxy"),
|
||||
tun("vpn");
|
||||
tun("vpn"),
|
||||
tunService("vpnService");
|
||||
|
||||
const ServiceMode(this.key);
|
||||
|
||||
@@ -27,6 +28,8 @@ enum ServiceMode {
|
||||
systemProxy => t.settings.config.serviceModes.systemProxy,
|
||||
tun =>
|
||||
"${t.settings.config.serviceModes.tun}${PlatformUtils.isDesktop ? " (${t.settings.experimental})" : ""}",
|
||||
tunService =>
|
||||
"${t.settings.config.serviceModes.tunService}${PlatformUtils.isDesktop ? " (${t.settings.experimental})" : ""}",
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ class SingboxConfigOption with _$SingboxConfigOption {
|
||||
required bool enableClashApi,
|
||||
required int clashApiPort,
|
||||
required bool enableTun,
|
||||
required bool enableTunService,
|
||||
required bool setSystemProxy,
|
||||
required bool bypassLan,
|
||||
required bool allowConnectionFromLan,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
cd "\$(dirname "\$0")"
|
||||
export LD_LIBRARY_PATH=usr/lib
|
||||
if [ $1 == "HiddifyService" ];then
|
||||
if [ "$1" == "HiddifyService" ];then
|
||||
exec ./$@
|
||||
else
|
||||
exec ./$appName $@
|
||||
|
||||
Reference in New Issue
Block a user