Node test with sub chain

This commit is contained in:
DHR60 2026-02-08 16:19:07 +08:00
parent 0075939a73
commit 9b784ab9c7
4 changed files with 15 additions and 5 deletions

View file

@ -99,7 +99,12 @@ public static class CoreConfigHandler
var nodes = await AppManager.Instance.GetProfileItemsByIndexIds(ids); var nodes = await AppManager.Instance.GetProfileItemsByIndexIds(ids);
foreach (var node in nodes) foreach (var node in nodes)
{ {
await FillNodeContext(context, node, false); var actNode = await FillNodeContext(context, node, true);
if (node.IndexId == actNode.IndexId)
{
continue;
}
context.ServerTestItemMap[node.IndexId] = actNode.IndexId;
} }
if (coreType == ECoreType.sing_box) if (coreType == ECoreType.sing_box)
{ {

View file

@ -10,6 +10,9 @@ public record CoreConfigContext
public Config AppConfig { get; init; } = new(); public Config AppConfig { get; init; } = new();
public FullConfigTemplateItem? FullConfigTemplate { get; init; } = new(); public FullConfigTemplateItem? FullConfigTemplate { get; init; } = new();
// Test ServerTestItem Map
public Dictionary<string, string> ServerTestItemMap { get; init; } = new();
// TUN Compatibility // TUN Compatibility
public bool IsTunEnabled { get; init; } = false; public bool IsTunEnabled { get; init; } = false;
public HashSet<string> ProtectDomainList { get; init; } = new(); public HashSet<string> ProtectDomainList { get; init; } = new();

View file

@ -122,8 +122,9 @@ public partial class CoreConfigSingboxService(CoreConfigContext context)
{ {
continue; continue;
} }
var item = context.AllProxiesMap.GetValueOrDefault(it.IndexId); var actIndexId = context.ServerTestItemMap.GetValueOrDefault(it.IndexId, it.IndexId);
if (item is null || item.IsComplex() || !item.IsValid()) var item = context.AllProxiesMap.GetValueOrDefault(actIndexId);
if (item is null || item.ConfigType is EConfigType.Custom || !item.IsValid())
{ {
continue; continue;
} }

View file

@ -120,8 +120,9 @@ public partial class CoreConfigV2rayService(CoreConfigContext context)
{ {
continue; continue;
} }
var item = context.AllProxiesMap.GetValueOrDefault(it.IndexId); var actIndexId = context.ServerTestItemMap.GetValueOrDefault(it.IndexId, it.IndexId);
if (item is null || item.IsComplex() || !item.IsValid()) var item = context.AllProxiesMap.GetValueOrDefault(actIndexId);
if (item is null || item.ConfigType is EConfigType.Custom || !item.IsValid())
{ {
continue; continue;
} }