14.04.2026 Update

This commit is contained in:
2026-04-15 11:38:26 +03:00
parent 6aa0349f5d
commit f50d79fab3
45 changed files with 5645 additions and 751 deletions

View File

@@ -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)
}