Bläddra i källkod

修改优化代码

niujiuru 1 månad sedan
förälder
incheckning
3d8c187571
2 ändrade filer med 19 tillägg och 6 borttagningar
  1. 13 0
      air720u/eth2net.go
  2. 6 6
      netmgrd/eth0net.go

+ 13 - 0
air720u/eth2net.go

@@ -17,6 +17,7 @@ import (
 	"time"
 
 	"github.com/sirupsen/logrus"
+	"github.com/vishvananda/netlink"
 	"hnyfkj.com.cn/rtu/linux/baseapp"
 )
 
@@ -216,3 +217,15 @@ func monitorEth2Udhcpc(exitCh <-chan struct{}) {
 		} // select end
 	} // for end
 }
+
+func IsEth2CableConnected() (bool, error) {
+	if data, err := os.ReadFile("/sys/class/net/eth2/carrier"); err == nil {
+		return strings.TrimSpace(string(data)) == "1", nil
+	}
+
+	link, err := netlink.LinkByName("eth2")
+	if err != nil {
+		return false, err
+	}
+	return link.Attrs().OperState == netlink.OperUp, nil
+}

+ 6 - 6
netmgrd/eth0net.go

@@ -48,8 +48,8 @@ func dialupEth0() error {
 		return fmt.Errorf("启动网口\"eth0\"失败: %w", err)
 	}
 
-	eth2pid := baseapp.RUN_DIR + "/udhcpc.eth0.pid"
-	cmd2 := exec.Command("udhcpc", "-b", "-i", "eth0", "-p", eth2pid)
+	eth0pid := baseapp.RUN_DIR + "/udhcpc.eth0.pid"
+	cmd2 := exec.Command("udhcpc", "-b", "-i", "eth0", "-p", eth0pid)
 	cmd2.Stdout = baseapp.Logger.WriterLevel(logrus.DebugLevel)
 	cmd2.Stderr = baseapp.Logger.WriterLevel(logrus.ErrorLevel)
 	if err := cmd2.Run(); err != nil {
@@ -61,8 +61,8 @@ func dialupEth0() error {
 
 // 检测"eth0"网口上的"udhcpc"后台进程是否正在运行, 只保持一个实例
 func udhcpcEth0Exists() (bool, error) {
-	eth2pid := baseapp.RUN_DIR + "/udhcpc.eth0.pid"
-	data, err := os.ReadFile(eth2pid)
+	eth0pid := baseapp.RUN_DIR + "/udhcpc.eth0.pid"
+	data, err := os.ReadFile(eth0pid)
 	if err != nil {
 		return false, err
 	}
@@ -82,8 +82,8 @@ func udhcpcEth0Exists() (bool, error) {
 
 // 杀死"eth0"网口上的"udhcpc"进程(根据上次运行时它的PID-文件记录)
 func KillEth0Udhcpc() error {
-	eth2pid := baseapp.RUN_DIR + "/udhcpc.eth0.pid"
-	data, err := os.ReadFile(eth2pid)
+	eth0pid := baseapp.RUN_DIR + "/udhcpc.eth0.pid"
+	data, err := os.ReadFile(eth0pid)
 	if err != nil {
 		return err
 	}