From a4e9f353039681f4e319f062fd1c61fe323ad68d Mon Sep 17 00:00:00 2001 From: Mmx233 Date: Thu, 8 Dec 2022 16:39:17 +0800 Subject: [PATCH] =?UTF-8?q?improve:=20=E4=BF=AE=E6=94=B9=20ddns=20?= =?UTF-8?q?=E5=8C=85=E4=BE=9D=E8=B5=96=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/login.go | 10 ++++++++-- dns/initer.go | 15 +++++++-------- dns/models.go | 19 +++++++++++++++++++ dns/models/config.go | 6 ------ dns/models/interface.go | 5 ----- dns/util/config.go | 2 +- 6 files changed, 35 insertions(+), 22 deletions(-) create mode 100644 dns/models.go delete mode 100644 dns/models/config.go delete mode 100644 dns/models/interface.go diff --git a/controllers/login.go b/controllers/login.go index 22c28c0..096db09 100644 --- a/controllers/login.go +++ b/controllers/login.go @@ -13,13 +13,14 @@ import ( func Login(localAddr net.Addr, debugOutput bool) error { // 登录状态检查 + httpClient := util.HttpPackSelect(localAddr).Client conf := &BitSrun.Conf{ Https: global.Config.Settings.Basic.Https, LoginInfo: BitSrun.LoginInfo{ Form: &global.Config.Form, Meta: &global.Config.Meta, }, - Client: util.HttpPackSelect(localAddr).Client, + Client: httpClient, } var output func(args ...interface{}) @@ -73,7 +74,12 @@ func Login(localAddr net.Addr, debugOutput bool) error { delete(global.Config.Settings.DDNS, "provider") - _ = dns.Run(providerStr, ip, global.Config.Settings.DDNS) + _ = dns.Run(&dns.Config{ + Provider: providerStr, + IP: ip, + Conf: global.Config.Settings.DDNS, + Http: httpClient, + }) } return nil diff --git a/dns/initer.go b/dns/initer.go index f438415..fa749b9 100644 --- a/dns/initer.go +++ b/dns/initer.go @@ -2,14 +2,13 @@ package dns import ( "github.com/Mmx233/BitSrunLoginGo/dns/aliyun" - "github.com/Mmx233/BitSrunLoginGo/dns/models" "github.com/mitchellh/mapstructure" log "github.com/sirupsen/logrus" ) -func Run(provider, ip string, conf map[string]interface{}) error { - var meta models.BasicConfig - e := mapstructure.Decode(conf, &meta) +func Run(c *Config) error { + var meta BasicConfig + e := mapstructure.Decode(c.Conf, &meta) if e != nil { log.Warnf("解析 DDNS 配置失败:%v", e) return e @@ -17,12 +16,12 @@ func Run(provider, ip string, conf map[string]interface{}) error { // 配置解析 - var dns models.DnsProvider - switch provider { + var dns Provider + switch c.Provider { case "aliyun": dns, e = aliyun.New(meta.Other) default: - log.Warnf("DDNS 模块 dns 运营商 %s 不支持", provider) + log.Warnf("DDNS 模块 dns 运营商 %s 不支持", c.Provider) return nil } if e != nil { @@ -32,7 +31,7 @@ func Run(provider, ip string, conf map[string]interface{}) error { // 修改 dns 记录 - if e = dns.SetDomainRecord(meta.Domain, ip); e != nil { + if e = dns.SetDomainRecord(meta.Domain, c.IP); e != nil { log.Warnf("设置 dns 解析记录失败:%v", e) return e } diff --git a/dns/models.go b/dns/models.go new file mode 100644 index 0000000..cf6b88c --- /dev/null +++ b/dns/models.go @@ -0,0 +1,19 @@ +package dns + +import "net/http" + +type Provider interface { + SetDomainRecord(domain, ip string) error +} + +type Config struct { + Provider string + IP string + Conf map[string]interface{} + Http *http.Client +} + +type BasicConfig struct { + Domain string `mapstructure:"domain"` + Other map[string]interface{} `mapstructure:",remain"` +} diff --git a/dns/models/config.go b/dns/models/config.go deleted file mode 100644 index cf42ea5..0000000 --- a/dns/models/config.go +++ /dev/null @@ -1,6 +0,0 @@ -package models - -type BasicConfig struct { - Domain string `mapstructure:"domain"` - Other map[string]interface{} `mapstructure:",remain"` -} diff --git a/dns/models/interface.go b/dns/models/interface.go deleted file mode 100644 index 29a233f..0000000 --- a/dns/models/interface.go +++ /dev/null @@ -1,5 +0,0 @@ -package models - -type DnsProvider interface { - SetDomainRecord(domain, ip string) error -} diff --git a/dns/util/config.go b/dns/util/config.go index 4bf5465..5326b4c 100644 --- a/dns/util/config.go +++ b/dns/util/config.go @@ -1,4 +1,4 @@ -package util +package dnsUtil import ( "github.com/mitchellh/mapstructure"