mirror of
https://github.com/snltty/linker.git
synced 2025-10-30 20:16:53 +08:00
57 lines
2.1 KiB
C#
57 lines
2.1 KiB
C#
using linker.config;
|
|
using linker.plugins.tuntap.messenger;
|
|
using linker.plugins.tuntap.proxy;
|
|
using linker.plugins.tuntap.vea;
|
|
using linker.startup;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using System.Reflection;
|
|
|
|
namespace linker.plugins.tuntap
|
|
{
|
|
/// <summary>
|
|
/// 虚拟网卡组网插件
|
|
/// </summary>
|
|
public sealed class TuntapStartup : IStartup
|
|
{
|
|
public StartupLevel Level => StartupLevel.Normal;
|
|
public string Name => "tuntap";
|
|
public bool Required => false;
|
|
public string[] Dependent => new string[] { "messenger", "relay", "tunnel", "signin", "serialize", "config" };
|
|
|
|
public StartupLoadType LoadType => StartupLoadType.Normal;
|
|
|
|
|
|
public void AddClient(ServiceCollection serviceCollection, FileConfig config, Assembly[] assemblies)
|
|
{
|
|
//不同平台下的虚拟网卡
|
|
if (OperatingSystem.IsWindows()) serviceCollection.AddSingleton<ITuntapVea, TuntapVeaWindows>();
|
|
if (OperatingSystem.IsLinux()) serviceCollection.AddSingleton<ITuntapVea, TuntapVeaLinux>();
|
|
if (OperatingSystem.IsMacOS()) serviceCollection.AddSingleton<ITuntapVea, TuntapVeaMacOs>();
|
|
|
|
serviceCollection.AddSingleton<TuntapClientApiController>();
|
|
serviceCollection.AddSingleton<TuntapTransfer>();
|
|
serviceCollection.AddSingleton<TuntapProxy>();
|
|
|
|
serviceCollection.AddSingleton<TuntapClientMessenger>();
|
|
|
|
|
|
serviceCollection.AddSingleton<ExcludeIP>();
|
|
}
|
|
|
|
public void AddServer(ServiceCollection serviceCollection, FileConfig config, Assembly[] assemblies)
|
|
{
|
|
serviceCollection.AddSingleton<TuntapServerMessenger>();
|
|
}
|
|
|
|
public void UseClient(ServiceProvider serviceProvider, FileConfig config, Assembly[] assemblies)
|
|
{
|
|
TuntapProxy tuntapProxy = serviceProvider.GetService<TuntapProxy>();
|
|
TuntapTransfer tuntapTransfer = serviceProvider.GetService<TuntapTransfer>();
|
|
}
|
|
|
|
public void UseServer(ServiceProvider serviceProvider, FileConfig config, Assembly[] assemblies)
|
|
{
|
|
}
|
|
}
|
|
}
|