From f29017b7f4d42b2a0f0d17c8d42512b8cc0ae574 Mon Sep 17 00:00:00 2001 From: apalrd Date: Thu, 13 Feb 2025 01:58:23 +0000 Subject: [PATCH] Bring up loopback interface via Netlink --- network.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/network.go b/network.go index f461e45..90d83b7 100644 --- a/network.go +++ b/network.go @@ -25,6 +25,23 @@ type LocalIpInfo struct { MAC string } +func checkLoopback() { + iface, err := netlink.LinkByName("lo") + if err != nil { + fmt.Printf("failed to get lo interface: %v\n", err) + return + } + + if iface.Attrs().OperState != netlink.OperUp { + fmt.Printf("lo is not up, bringing it up\n") + err = netlink.LinkSetUp(iface) + if err != nil { + fmt.Printf("failed to bring lo up: %v\n", err) + return + } + } +} + func checkNetworkState() { iface, err := netlink.LinkByName("eth0") if err != nil { @@ -102,6 +119,9 @@ func init() { return } + //Start loopback before launching network task + checkLoopback() + go func() { waitCtrlClientConnected() checkNetworkState()