mirror of
https://github.com/2dust/v2rayN.git
synced 2026-04-14 19:45:45 +00:00
Compare commits
6 commits
4f2cfe26a6
...
e183ad35bf
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e183ad35bf | ||
|
|
e19b000081 | ||
|
|
7329dbae11 | ||
|
|
695a073cd6 | ||
|
|
01c85adedf | ||
|
|
2caf8ea14f |
6 changed files with 30 additions and 14 deletions
|
|
@ -253,11 +253,14 @@ download_xray() {
|
|||
}
|
||||
|
||||
download_singbox() {
|
||||
local outdir="$1" rid="$2" ver="${SING_VER:-}" url tmp tarname="singbox.tar.gz" bin
|
||||
# Download sing-box
|
||||
local outdir="$1" rid="$2" ver="${SING_VER:-}" url tmp tarname="singbox.tar.gz" bin cronet
|
||||
mkdir -p "$outdir"
|
||||
if [[ -z "$ver" ]]; then
|
||||
ver="$(curl -fsSL https://api.github.com/repos/SagerNet/sing-box/releases/latest \
|
||||
| grep -Eo '"tag_name":\s*"v[^"]+"' | sed -E 's/.*"v([^"]+)".*/\1/' | head -n1)" || true
|
||||
| grep -Eo '"tag_name":\s*"v[^"]+"' \
|
||||
| sed -E 's/.*"v([^"]+)".*/\1/' \
|
||||
| head -n1)" || true
|
||||
fi
|
||||
[[ -n "$ver" ]] || { echo "[sing-box] Failed to get version"; return 1; }
|
||||
if [[ "$rid" == "linux-arm64" ]]; then
|
||||
|
|
@ -272,6 +275,8 @@ download_singbox() {
|
|||
bin="$(find "$tmp" -type f -name 'sing-box' | head -n1 || true)"
|
||||
[[ -n "$bin" ]] || { echo "[!] sing-box unpack failed"; rm -rf "$tmp"; return 1; }
|
||||
install -m 755 "$bin" "$outdir/sing-box"
|
||||
cronet="$(find "$tmp" -type f -name 'libcronet*.so*' | head -n1 || true)"
|
||||
[[ -n "$cronet" ]] && install -m 644 "$cronet" "$outdir/libcronet.so"
|
||||
rm -rf "$tmp"
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -232,11 +232,13 @@ download_xray() {
|
|||
|
||||
download_singbox() {
|
||||
# Download sing-box
|
||||
local outdir="$1" rid="$2" ver="${SING_VER:-}" url tmp tarname="singbox.tar.gz" bin
|
||||
local outdir="$1" rid="$2" ver="${SING_VER:-}" url tmp tarname="singbox.tar.gz" bin cronet
|
||||
mkdir -p "$outdir"
|
||||
if [[ -z "$ver" ]]; then
|
||||
ver="$(curl -fsSL https://api.github.com/repos/SagerNet/sing-box/releases/latest \
|
||||
| grep -Eo '"tag_name":\s*"v[^"]+"' | sed -E 's/.*"v([^"]+)".*/\1/' | head -n1)" || true
|
||||
| grep -Eo '"tag_name":\s*"v[^"]+"' \
|
||||
| sed -E 's/.*"v([^"]+)".*/\1/' \
|
||||
| head -n1)" || true
|
||||
fi
|
||||
[[ -n "$ver" ]] || { echo "[sing-box] Failed to get version"; return 1; }
|
||||
if [[ "$rid" == "linux-arm64" ]]; then
|
||||
|
|
@ -251,6 +253,8 @@ download_singbox() {
|
|||
bin="$(find "$tmp" -type f -name 'sing-box' | head -n1 || true)"
|
||||
[[ -n "$bin" ]] || { echo "[!] sing-box unpack failed"; rm -rf "$tmp"; return 1; }
|
||||
install -m 755 "$bin" "$outdir/sing-box"
|
||||
cronet="$(find "$tmp" -type f -name 'libcronet*.so*' | head -n1 || true)"
|
||||
[[ -n "$cronet" ]] && install -m 644 "$cronet" "$outdir/libcronet.so"
|
||||
rm -rf "$tmp"
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<Project>
|
||||
|
||||
<PropertyGroup>
|
||||
<Version>7.20.0</Version>
|
||||
<Version>7.20.1</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
|
|
|
|||
|
|
@ -1432,7 +1432,7 @@ public static class ConfigHandler
|
|||
else if (node.ConfigType == EConfigType.Custom
|
||||
&& node.PreSocksPort is > 0 and <= 65535)
|
||||
{
|
||||
var preCoreType = AppManager.Instance.RunningCoreType = config.TunModeItem.EnableTun ? ECoreType.sing_box : ECoreType.Xray;
|
||||
var preCoreType = config.TunModeItem.EnableTun ? ECoreType.sing_box : ECoreType.Xray;
|
||||
itemSocks = new ProfileItem()
|
||||
{
|
||||
CoreType = preCoreType,
|
||||
|
|
|
|||
|
|
@ -90,6 +90,9 @@ public class CoreManager
|
|||
|
||||
await CoreStart(mainContext);
|
||||
await CoreStartPreService(preContext);
|
||||
|
||||
AppManager.Instance.RunningCoreType = preContext?.RunCoreType ?? mainContext.RunCoreType;
|
||||
|
||||
if (_processService != null)
|
||||
{
|
||||
await UpdateFunc(true, $"{node.GetSummary()}");
|
||||
|
|
@ -172,7 +175,7 @@ public class CoreManager
|
|||
private async Task CoreStart(CoreConfigContext context)
|
||||
{
|
||||
var node = context.Node;
|
||||
var coreType = AppManager.Instance.RunningCoreType = AppManager.Instance.GetCoreType(node, node.ConfigType);
|
||||
var coreType = AppManager.Instance.GetCoreType(node, node.ConfigType);
|
||||
var coreInfo = CoreInfoManager.Instance.GetCoreInfo(coreType);
|
||||
|
||||
var displayLog = node.ConfigType != EConfigType.Custom || node.DisplayLog;
|
||||
|
|
|
|||
|
|
@ -709,18 +709,22 @@ public class ProfilesViewModel : MyReactiveObject
|
|||
|
||||
public async Task ServerSpeedtest(ESpeedActionType actionType)
|
||||
{
|
||||
if (actionType == ESpeedActionType.Mixedtest)
|
||||
List<ProfileItem>? lstSelected;
|
||||
if (actionType is ESpeedActionType.Mixedtest or ESpeedActionType.FastRealping)
|
||||
{
|
||||
SelectedProfiles = ProfileItems;
|
||||
if (actionType == ESpeedActionType.FastRealping)
|
||||
{
|
||||
actionType = ESpeedActionType.Realping;
|
||||
}
|
||||
|
||||
lstSelected = JsonUtils.Deserialize<List<ProfileItem>>(JsonUtils.Serialize(ProfileItems?.OrderBy(t => t.Sort)));
|
||||
}
|
||||
else if (actionType == ESpeedActionType.FastRealping)
|
||||
else
|
||||
{
|
||||
SelectedProfiles = ProfileItems;
|
||||
actionType = ESpeedActionType.Realping;
|
||||
lstSelected = await GetProfileItems(false);
|
||||
}
|
||||
|
||||
var lstSelected = await GetProfileItems(false);
|
||||
if (lstSelected == null)
|
||||
if (lstSelected is null || lstSelected.Count <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue