Parcourir la source

优化修改代码

niujiuru il y a 1 mois
Parent
commit
8b7b30bb78
7 fichiers modifiés avec 34 ajouts et 42 suppressions
  1. 1 1
      air720u/air720u.go
  2. 10 16
      air720u/eth2net.go
  3. 1 1
      ec200u/en200u.go
  4. 10 16
      ec200u/usb0net.go
  5. 4 4
      netmgrd/eth0net.go
  6. 6 2
      netmgrd/modem.go
  7. 2 2
      netmgrd/netmgrd.go

+ 1 - 1
air720u/air720u.go

@@ -210,7 +210,7 @@ func Start4GNetwork() bool {
 	}
 
 	killAllUdhcpc()
-	err := disableEthBut2()
+	err := disableEth0()
 	if err != nil {
 		baseapp.Logger.Errorf("[%s] 错误: %v!!", MODULE_NAME, err)
 		return false

+ 10 - 16
air720u/eth2net.go

@@ -21,24 +21,18 @@ import (
 	"hnyfkj.com.cn/rtu/linux/baseapp"
 )
 
-// 只保留需要使用的"eth2"网卡
-func disableEthBut2() error {
-	ifaces, err := net.Interfaces()
+// 禁用"eth0"网口, 使其不可用
+func disableEth0() error {
+	iface, err := net.InterfaceByName("eth0")
 	if err != nil {
-		return fmt.Errorf("获取网络接口列表失败: %w", err)
+		return fmt.Errorf("未找到网口\"eth0\": %w", err)
 	}
 
-	for _, iface := range ifaces {
-		if !strings.HasPrefix(iface.Name, "eth") || iface.Name == "eth2" {
-			continue
-		}
-
-		cmd := exec.Command("ip", "link", "set", "dev", iface.Name, "down")
-		cmd.Stdout = baseapp.Logger.WriterLevel(logrus.DebugLevel)
-		cmd.Stderr = baseapp.Logger.WriterLevel(logrus.ErrorLevel)
-		if err := cmd.Run(); err != nil {
-			return fmt.Errorf("关闭网口\"%s\"失败: %w", iface.Name, err)
-		}
+	cmd := exec.Command("ip", "link", "set", "dev", iface.Name, "down")
+	cmd.Stdout = baseapp.Logger.WriterLevel(logrus.DebugLevel)
+	cmd.Stderr = baseapp.Logger.WriterLevel(logrus.ErrorLevel)
+	if err := cmd.Run(); err != nil {
+		return fmt.Errorf("关闭网口\"%s\"失败: %w", iface.Name, err)
 	}
 
 	return nil
@@ -214,7 +208,7 @@ func monitorEth2Udhcpc(exitCh <-chan struct{}) {
 			bExists, _ := udhcpcEth2Exists()
 			if !bExists { // 清场一次
 				killAllUdhcpc()
-				disableEthBut2()
+				disableEth0()
 			}
 			if !bExists && dialupEth2() == nil { // 重新进场
 				ip, mask, _ := getEth2Addr()

+ 1 - 1
ec200u/en200u.go

@@ -210,7 +210,7 @@ func Start4GNetwork() bool {
 	}
 
 	killAllUdhcpc()
-	err := disableEthButUSB0()
+	err := disableEth0()
 	if err != nil {
 		baseapp.Logger.Errorf("[%s] 错误: %v!!", MODULE_NAME, err)
 		return false

+ 10 - 16
ec200u/usb0net.go

@@ -21,24 +21,18 @@ import (
 	"hnyfkj.com.cn/rtu/linux/baseapp"
 )
 
-// 只保留需要使用的"usb0"网卡
-func disableEthButUSB0() error {
-	ifaces, err := net.Interfaces()
+// 禁用"eth0"网口, 使其不可用
+func disableEth0() error {
+	iface, err := net.InterfaceByName("eth0")
 	if err != nil {
-		return fmt.Errorf("获取网络接口列表失败: %w", err)
+		return fmt.Errorf("未找到网口\"eth0\": %w", err)
 	}
 
-	for _, iface := range ifaces {
-		if !strings.HasPrefix(iface.Name, "eth") || iface.Name == "usb0" {
-			continue
-		}
-
-		cmd := exec.Command("ip", "link", "set", "dev", iface.Name, "down")
-		cmd.Stdout = baseapp.Logger.WriterLevel(logrus.DebugLevel)
-		cmd.Stderr = baseapp.Logger.WriterLevel(logrus.ErrorLevel)
-		if err := cmd.Run(); err != nil {
-			return fmt.Errorf("关闭网口\"%s\"失败: %w", iface.Name, err)
-		}
+	cmd := exec.Command("ip", "link", "set", "dev", iface.Name, "down")
+	cmd.Stdout = baseapp.Logger.WriterLevel(logrus.DebugLevel)
+	cmd.Stderr = baseapp.Logger.WriterLevel(logrus.ErrorLevel)
+	if err := cmd.Run(); err != nil {
+		return fmt.Errorf("关闭网口\"%s\"失败: %w", iface.Name, err)
 	}
 
 	return nil
@@ -214,7 +208,7 @@ func monitorUSB0Udhcpc(exitCh <-chan struct{}) {
 			bExists, _ := udhcpcUSB0Exists()
 			if !bExists { // 清场一次
 				killAllUdhcpc()
-				disableEthButUSB0()
+				disableEth0()
 			}
 			if !bExists && dialupUSB0() == nil { // 重新进场
 				ip, mask, _ := getUSB0Addr()

+ 4 - 4
netmgrd/eth0net.go

@@ -16,15 +16,15 @@ import (
 	"hnyfkj.com.cn/rtu/linux/baseapp"
 )
 
-// 只保留需要使用的"eth0"网卡
-func disableEthBut0() error {
+// 禁用所有4G网卡, 使其不可用
+func disable4GInterfaces() error {
 	ifaces, err := net.Interfaces()
 	if err != nil {
 		return fmt.Errorf("获取网络接口列表失败: %w", err)
 	}
 
 	for _, iface := range ifaces {
-		if !strings.HasPrefix(iface.Name, "eth") || iface.Name == "eth0" {
+		if iface.Name != "eth2" && iface.Name != "usb0" {
 			continue
 		}
 
@@ -169,7 +169,7 @@ func monitorEth0Udhcpc(exitCh <-chan struct{}) {
 			bExists, _ := udhcpcEth0Exists()
 			if !bExists { // 清场一次
 				killAllUdhcpc()
-				disableEthBut0()
+				disable4GInterfaces()
 			}
 			if !bExists && dialupEth0() == nil { // 重新进场
 				ip, mask, _ := getEth0Addr()

+ 6 - 2
netmgrd/modem.go

@@ -9,8 +9,8 @@ type ModemType int
 
 const (
 	Unknown ModemType = iota
-	Air720U           // 合宙4G调制解调器
-	EC200U            // 移远4G调制解调器
+	Air720U           // 合宙4G调制解调器, 注册网卡名为"eth2"
+	EC200U            // 移远4G调制解调器, 注册网卡名为"usb0"
 )
 
 var (
@@ -32,11 +32,15 @@ func ModemInit() bool {
 	if modem1.ModuleInit(false) {
 		curModemType = Air720U
 		return true
+	} else {
+		modem1.ModuleExit()
 	}
 
 	if modem2.ModuleInit(false) {
 		curModemType = EC200U
 		return true
+	} else {
+		modem2.ModuleExit()
 	}
 
 	return false

+ 2 - 2
netmgrd/netmgrd.go

@@ -30,7 +30,7 @@ type NetType int
 
 const (
 	NetNone NetType = iota
-	NetEth          // 有线网络
+	NetEth          // 有线网络, 注册网卡名为"eth0"
 	NetLTE          // 蜂窝网络
 )
 
@@ -172,7 +172,7 @@ func openEth0Net() bool {
 	}
 
 	killAllUdhcpc()
-	err := disableEthBut0()
+	err := disable4GInterfaces()
 	if err != nil {
 		baseapp.Logger.Errorf("[%s] 错误: %v!!", MODULE_NAME, err)
 		return false