Reafctor IController

This commit is contained in:
ChsBuffer
2021-06-26 23:06:24 +08:00
parent 3aee365b48
commit c0452552ec
17 changed files with 203 additions and 239 deletions

View File

@@ -7,26 +7,25 @@ namespace Netch.Controllers
{
public class DNSController : IController
{
public string Name { get; } = "DNS Service";
private const string RulePath = "bin\\aiodns.conf";
public string Name => "DNS Service";
public void Stop()
{
Free();
}
/// <summary>
/// 启动DNS服务
/// </summary>
/// <returns></returns>
public void Start()
{
MainController.PortCheck(Global.Settings.AioDNS.ListenPort, "DNS");
var aioDnsConfig = Global.Settings.AioDNS;
var listenAddress = Global.Settings.LocalAddress;
Dial(NameList.TYPE_REST, "");
Dial(NameList.TYPE_ADDR, $"{Global.Settings.LocalAddress}:{Global.Settings.AioDNS.ListenPort}");
Dial(NameList.TYPE_LIST, Path.GetFullPath(RulePath));
Dial(NameList.TYPE_CDNS, $"{Global.Settings.AioDNS.ChinaDNS}");
Dial(NameList.TYPE_ODNS, $"{Global.Settings.AioDNS.OtherDNS}");
Dial(NameList.TYPE_ADDR, $"{listenAddress}:{aioDnsConfig.ListenPort}");
Dial(NameList.TYPE_LIST, Path.GetFullPath(Constants.AioDnsRuleFile));
Dial(NameList.TYPE_CDNS, $"{aioDnsConfig.ChinaDNS}");
Dial(NameList.TYPE_ODNS, $"{aioDnsConfig.OtherDNS}");
if (!Init())
throw new Exception("AioDNS start failed.");