无缝切换隧道

This commit is contained in:
snltty
2024-09-18 09:21:47 +08:00
parent a057497f16
commit 0c2b1eec62
7 changed files with 11 additions and 22 deletions

View File

@@ -45,10 +45,7 @@ namespace linker.plugins.client
runningConfigTransfer.Setter(configKey, SetServers); runningConfigTransfer.Setter(configKey, SetServers);
runningConfigTransfer.Getter(configKey, () => MemoryPackSerializer.Serialize(runningConfig.Data.Client.Servers)); runningConfigTransfer.Getter(configKey, () => MemoryPackSerializer.Serialize(runningConfig.Data.Client.Servers));
clientSignInState.NetworkFirstEnabledHandle += () => clientSignInState.NetworkEnabledHandle += (times) => SyncServers();
{
SyncServers();
};
} }
/// <summary> /// <summary>
@@ -71,7 +68,7 @@ namespace linker.plugins.client
} }
} }
return true; return true;
},10000); }, 10000);
} }
/// <summary> /// <summary>

View File

@@ -41,10 +41,7 @@ namespace linker.plugins.relay
runningConfigTransfer.Setter(configKey, SetServers); runningConfigTransfer.Setter(configKey, SetServers);
runningConfigTransfer.Getter(configKey, () => MemoryPackSerializer.Serialize(new RelayRunningSyncInfo { ByRelay = running.Data.Relay.ByRelay, Servers = running.Data.Relay.Servers })); runningConfigTransfer.Getter(configKey, () => MemoryPackSerializer.Serialize(new RelayRunningSyncInfo { ByRelay = running.Data.Relay.ByRelay, Servers = running.Data.Relay.Servers }));
clientSignInState.NetworkFirstEnabledHandle += () => clientSignInState.NetworkEnabledHandle += (times) => SyncServers();
{
SyncServers();
};
} }
private void InitConfig() private void InitConfig()
{ {

View File

@@ -33,11 +33,8 @@ namespace linker.plugins.sforward
runningConfigTransfer.Setter(configKey, SetSecretKey); runningConfigTransfer.Setter(configKey, SetSecretKey);
runningConfigTransfer.Getter(configKey, () => MemoryPackSerializer.Serialize(GetSecretKey())); runningConfigTransfer.Getter(configKey, () => MemoryPackSerializer.Serialize(GetSecretKey()));
clientSignInState.NetworkFirstEnabledHandle += () => clientSignInState.NetworkFirstEnabledHandle += () => Start();
{ clientSignInState.NetworkEnabledHandle += (times) => SyncKey();
Start();
SyncKey();
};
} }
#region #region
@@ -80,7 +77,7 @@ namespace linker.plugins.sforward
{ {
Stop(item); Stop(item);
} }
} }
} }
private void Start(SForwardInfo forwardInfo) private void Start(SForwardInfo forwardInfo)
@@ -216,7 +213,7 @@ namespace linker.plugins.sforward
if (old == null) return false; if (old == null) return false;
old.Started = false; old.Started = false;
running.Data.SForwards.Remove(old); running.Data.SForwards.Remove(old);
running.Data.Update(); running.Data.Update();

View File

@@ -49,7 +49,7 @@ namespace linker.plugins.tunnel
} }
clientSignInState.NetworkFirstEnabledHandle += () => clientSignInState.NetworkEnabledHandle += (times) =>
{ {
SyncWanPort(); SyncWanPort();
SyncTransport(); SyncTransport();

View File

@@ -59,10 +59,7 @@ namespace linker.plugins.tunnel.excludeip
private void InitExcludeIP() private void InitExcludeIP()
{ {
clientSignInState.NetworkFirstEnabledHandle += () => clientSignInState.NetworkEnabledHandle += (times) => SyncExcludeIP();
{
SyncExcludeIP();
};
runningConfigTransfer.Setter(exipConfigKey, SettExcludeIPs); runningConfigTransfer.Setter(exipConfigKey, SettExcludeIPs);
runningConfigTransfer.Getter(exipConfigKey, () => MemoryPackSerializer.Serialize(GetExcludeIPs())); runningConfigTransfer.Getter(exipConfigKey, () => MemoryPackSerializer.Serialize(GetExcludeIPs()));
} }

View File

@@ -43,6 +43,7 @@ namespace linker.plugins.updater
UpdateTask(); UpdateTask();
updateInfo.Update(); updateInfo.Update();
}; };
clientSignInState.NetworkEnabledHandle += (times) => SyncKey();
} }
public string GetSecretKey() public string GetSecretKey()

View File

@@ -1,5 +1,5 @@
v1.3.8 v1.3.8
2024-09-18 00:31:04 2024-09-18 09:21:47
1. 优化隧道连接逻辑,降低首帧时间,先中继,成功则后台打洞,后台打洞成功则切换隧道,中继失败则立即打洞 1. 优化隧道连接逻辑,降低首帧时间,先中继,成功则后台打洞,后台打洞成功则切换隧道,中继失败则立即打洞
2. 虚拟网卡可能会丢失一两个包TCP不会断开连接 2. 虚拟网卡可能会丢失一两个包TCP不会断开连接
3. 端口转发,在发送数据包失败后,会尝试切换隧道再次发送,无缝切换隧道 3. 端口转发,在发送数据包失败后,会尝试切换隧道再次发送,无缝切换隧道