14.04.2026 Update
This commit is contained in:
@@ -6,34 +6,45 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
// IfDown brings an interface down via ifdown (or ip link set down as fallback).
|
||||
func IfDown(name string) error {
|
||||
out, err := exec.Command("ifdown", "--force", name).CombinedOutput()
|
||||
// LinkDown sets admin state down without deconfiguring (ip link set <name> down).
|
||||
func LinkDown(name string) error {
|
||||
out, err := exec.Command("ip", "link", "set", name, "down").CombinedOutput()
|
||||
if err != nil {
|
||||
// fallback: ip link set down
|
||||
out2, err2 := exec.Command("ip", "link", "set", name, "down").CombinedOutput()
|
||||
if err2 != nil {
|
||||
return fmt.Errorf("ifdown %s: %s\nip fallback: %s", name, strings.TrimSpace(string(out)), strings.TrimSpace(string(out2)))
|
||||
}
|
||||
return fmt.Errorf("ip link set down %s: %s", name, strings.TrimSpace(string(out)))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// IfUp brings an interface up via ifup (or ip link set up as fallback).
|
||||
func IfUp(name string) error {
|
||||
out, err := exec.Command("ifup", name).CombinedOutput()
|
||||
// LinkUp sets admin state up without re-running ifup (ip link set <name> up).
|
||||
func LinkUp(name string) error {
|
||||
out, err := exec.Command("ip", "link", "set", name, "up").CombinedOutput()
|
||||
if err != nil {
|
||||
out2, err2 := exec.Command("ip", "link", "set", name, "up").CombinedOutput()
|
||||
if err2 != nil {
|
||||
return fmt.Errorf("ifup %s: %s\nip fallback: %s", name, strings.TrimSpace(string(out)), strings.TrimSpace(string(out2)))
|
||||
}
|
||||
return fmt.Errorf("ip link set up %s: %s", name, strings.TrimSpace(string(out)))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// IfDown brings an interface down via ifdown --force.
|
||||
func IfDown(name string) error {
|
||||
out, err := exec.Command("ifdown", "--force", name).CombinedOutput()
|
||||
if err != nil {
|
||||
return fmt.Errorf("ifdown %s: %s", name, strings.TrimSpace(string(out)))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// IfUp brings an interface up via ifup --force.
|
||||
func IfUp(name string) error {
|
||||
out, err := exec.Command("ifup", "--force", name).CombinedOutput()
|
||||
if err != nil {
|
||||
return fmt.Errorf("ifup %s: %s", name, strings.TrimSpace(string(out)))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// IfRestart brings an interface down then up.
|
||||
func IfRestart(name string) error {
|
||||
_ = IfDown(name) // ignore "already down" errors
|
||||
_ = IfDown(name)
|
||||
return IfUp(name)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user