func InterfaceDown(name string) error { iface, err := net.InterfaceByName(name) if err != nil { return err } return netlink.NetworkLinkDown(iface) }
func downNetworkInterfaces(interfaces []network.InterfaceGenerator) error { sysInterfaceMap := make(map[string]*net.Interface) if systemInterfaces, err := net.Interfaces(); err == nil { for _, iface := range systemInterfaces { iface := iface sysInterfaceMap[iface.Name] = &iface } } else { return err } for _, iface := range interfaces { if systemInterface, ok := sysInterfaceMap[iface.Name()]; ok { log.Printf("Taking down interface %q\n", systemInterface.Name) if err := netlink.NetworkLinkDown(systemInterface); err != nil { log.Printf("Error while downing interface %q (%s). Continuing...\n", systemInterface.Name, err) } } } return nil }