From b148eea874eced6dfa38395dc3b90c68953ea521 Mon Sep 17 00:00:00 2001 From: Mmx <1624045573@qq.com> Date: Sat, 31 Jul 2021 18:29:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=85=81=E8=AE=B8=E8=AE=BE=E5=AE=9A?= =?UTF-8?q?=E9=A6=96=E6=AC=A1=E7=99=BB=E5=BD=95=E5=A4=B1=E8=B4=A5=E5=90=8E?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E8=BF=9B=E5=85=A5=E5=AE=88=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 39 ++++++++++++++++++++------------------- controllers/login.go | 1 - main.go | 13 +++++++++++-- models/config.go | 11 ++++++----- util/file.go | 1 - util/util.go | 12 ------------ 6 files changed, 37 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 05186b8..8149a39 100644 --- a/README.md +++ b/README.md @@ -14,25 +14,26 @@ Config.json说明: ```json5 { - "from": { - "domain": "www.msftconnecttest.com", //登录地址ip或域名 - "username": "", //账号 - "user_type": "cmcc", //运营商类型,详情看下方 - "password": "" //密码 - }, - "meta": { //登录参数 - "n": "200", - "type": "1", - "acid": "5", - "enc": "srun_bx1" - }, - "settings": { - "quit_if_net_ok": false, //登陆前是否检查网络 - "demo_mode": false, //测试模式,报错更详细,且生成运行日志与错误日志 - "dns": "1.2.4.8", //检查网络用的DNS地址,建议设为网关分发的内网DNS地址 - "guardian": 0, //守护网络,值为网络检查周期(秒),设为0关闭守护 - "daemon": false //将守护挂入后台 - } + "from": { + "domain": "www.msftconnecttest.com", //登录地址ip或域名 + "username": "", //账号 + "user_type": "cmcc", //运营商类型,详情看下方 + "password": "" //密码 + }, + "meta": { //登录参数 + "n": "200", + "type": "1", + "acid": "5", + "enc": "srun_bx1" + }, + "settings": { + "quit_if_net_ok": false, //登陆前是否检查网络 + "demo_mode": false, //测试模式,报错更详细,且生成运行日志与错误日志 + "dns": "1.2.4.8", //检查网络用的DNS地址,建议设为网关分发的内网DNS地址 + "guardian": 0, //守护网络,值为网络检查周期(秒),设为0关闭守护 + "daemon": false, //将守护挂入后台 + "force_guardian_even_failed": false //若为false,首次认证失败后不会进入守护 + } } ``` diff --git a/controllers/login.go b/controllers/login.go index 39c7a62..8ba20c1 100644 --- a/controllers/login.go +++ b/controllers/login.go @@ -28,7 +28,6 @@ func Login(output bool) error { } G.Ip, err = util.GetIp(body) if err != nil { - util.ErrHandler(err) return err } } diff --git a/main.go b/main.go index 725f41b..c241f6c 100644 --- a/main.go +++ b/main.go @@ -2,15 +2,24 @@ package main import ( "autoLogin/controllers" + "autoLogin/global" "autoLogin/util" + "os" ) func main() { defer util.Log.CatchRecover() if err := controllers.Login(true); err != nil { - util.ErrHandler(err) - return + util.Log.Println("运行出错,状态异常") + if global.Config.Settings.ForceGuardianEvenFailed { + util.Log.Println(err) + } else if global.Config.Settings.DemoMode { + util.Log.Fatalln(err) + } else { + util.Log.Println(err) + os.Exit(3) + } } controllers.EnterGuardian() diff --git a/models/config.go b/models/config.go index 193303a..ef81f59 100644 --- a/models/config.go +++ b/models/config.go @@ -6,11 +6,12 @@ import ( ) type Settings struct { - QuitIfNetOk bool `json:"quit_if_net_ok"` - DemoMode bool `json:"demo_mode"` - Dns string `json:"dns"` - Guardian uint `json:"guardian"` - Daemon bool `json:"daemon"` + QuitIfNetOk bool `json:"quit_if_net_ok"` + DemoMode bool `json:"demo_mode"` + Dns string `json:"dns"` + Guardian uint `json:"guardian"` + Daemon bool `json:"daemon"` + ForceGuardianEvenFailed bool `json:"force_guardian_even_failed"` } type Config struct { diff --git a/util/file.go b/util/file.go index 40b8117..27b329b 100644 --- a/util/file.go +++ b/util/file.go @@ -56,7 +56,6 @@ func (a *file) WriteJson(path string, receiver interface{}) error { func (*file) GetRootPath() (string, error) { t, err := os.Executable() if err != nil { - ErrHandler(err) return "", err } return filepath.Dir(t) + "/", nil diff --git a/util/util.go b/util/util.go index 92628cc..53656de 100644 --- a/util/util.go +++ b/util/util.go @@ -9,7 +9,6 @@ import ( "fmt" "io" "net" - "os" "regexp" "time" ) @@ -51,17 +50,6 @@ func Sha1(content string) string { return fmt.Sprintf("%x\n", bs) } -func ErrHandler(err error) { - if !global.Status.Output { - return - } - Log.Println("运行出错,状态异常") - if global.Config.Settings.DemoMode { - Log.Fatalln(err) - } - os.Exit(1) -} - func NetDailEr() func(ctx context.Context, network, address string) (net.Conn, error) { return func(ctx context.Context, network, address string) (net.Conn, error) { d := net.Dialer{