Преглед изворни кода

优化代码,增强鲁棒性

niujiuru пре 3 недеља
родитељ
комит
35a99265a6
2 измењених фајлова са 27 додато и 32 уклоњено
  1. 1 1
      baseapp/log.go
  2. 26 31
      sshd/server/server.go

+ 1 - 1
baseapp/log.go

@@ -166,7 +166,7 @@ func InitLogger(logCfgFile string) {
 		cfgFile = filepath.Join(CFG_DIR, "config.ini")
 	}
 
-	levelStr := "info"     // ---初始化设置默认的日志级别---
+	levelStr := "trace"    // ---初始化设置默认的日志级别---
 	targetStr := "console" // ---初始化设置默认的输出目标---
 
 	cfgIni, err := ini.Load(cfgFile) // 从配置文件中加载设置

+ 26 - 31
sshd/server/server.go

@@ -4,7 +4,6 @@ import (
 	"fmt"
 	"os"
 	"path/filepath"
-	"sync"
 
 	"gopkg.in/ini.v1"
 	"hnyfkj.com.cn/rtu/linux/baseapp"
@@ -24,8 +23,14 @@ type Config struct {
 }
 
 var (
-	CfgServers = &Config{}
-	Version    = "1.0.0.2"
+	CfgServers = &Config{
+		MQTTSrv: MQTTBroker{
+			Address:  "tcp://8.136.98.49:61883",
+			Username: "user",
+			Password: "f335bf402c655ee5fd2b5300905124e",
+		},
+	}
+	Version = "1.0.0.2"
 )
 
 func loadCfgServers() error {
@@ -48,19 +53,19 @@ func loadCfgServers() error {
 
 func main() {
 	baseapp.InitPath()
-	if err := EnsureSSHDConfig(); err != nil {
+	sshdCfgFile, err := ensureSSHDConfig()
+	if err != nil {
 		fmt.Printf("[YFKJ_SSHD] ensure config failed: %v\n", err)
 		os.Exit(1)
 	}
-	cfgFile := filepath.Join(baseapp.CFG_DIR, "sshd_cfg.ini")
-	baseapp.InitLogger(cfgFile)
+
+	baseapp.InitLogger(sshdCfgFile)
 	baseapp.SingleInstanceRun() // 异步非阻塞
 	baseapp.Logger.Infof("程序版本: %s 构建时间: %s\n程序开始运行...",
 		Version, baseapp.BuildTime)
 
 	if err := loadCfgServers(); err != nil {
-		baseapp.Logger.Errorf("[%s] 加载服务器配置项失败: %v!!", MODULE_NAME, err)
-		return
+		baseapp.Logger.Warnf("[%s] 加载服务器配置项失败: %v!", MODULE_NAME, err)
 	}
 
 	devIMEI := baseapp.GetArgsParamStr("-devIMEI", "")
@@ -96,20 +101,7 @@ Username = user
 Password = f335bf402c655ee5fd2b5300905124e
 `
 
-var (
-	initCfgOnce sync.Once
-	initCfgErr  error
-)
-
-func EnsureSSHDConfig() error {
-	initCfgOnce.Do(func() {
-		initCfgErr = ensureSSHDConfig()
-	})
-
-	return initCfgErr
-}
-
-func ensureSSHDConfig() error {
+func ensureSSHDConfig() (string, error) {
 	cfgFile := filepath.Join(
 		baseapp.CFG_DIR,
 		"sshd_cfg.ini",
@@ -119,7 +111,7 @@ func ensureSSHDConfig() error {
 		baseapp.CFG_DIR,
 		0755,
 	); err != nil {
-		return err
+		return "", err
 	}
 
 	f, err := os.OpenFile(
@@ -129,24 +121,27 @@ func ensureSSHDConfig() error {
 	)
 	if err != nil {
 		if os.IsExist(err) {
-			return nil
+			return cfgFile, nil
 		}
-		return err
+		return "", err
 	}
 
-	defer func() {
+	if _, err = f.WriteString(defaultSSHDCfg); err != nil {
 		_ = f.Close()
-	}()
+		_ = os.Remove(cfgFile)
+		return "", err
+	}
 
-	if _, err = f.WriteString(defaultSSHDCfg); err != nil {
+	if err = f.Sync(); err != nil {
+		_ = f.Close()
 		_ = os.Remove(cfgFile)
-		return err
+		return "", err
 	}
 
 	if err = f.Close(); err != nil {
 		_ = os.Remove(cfgFile)
-		return err
+		return "", err
 	}
 
-	return nil
+	return cfgFile, nil
 }