routes_linux.go 772 B

12345678910111213141516171819202122232425262728293031
  1. //go:build linux
  2. // +build linux
  3. package local
  4. import (
  5. //"github.com/davecgh/go-spew/spew"
  6. "fmt"
  7. "net"
  8. "strings"
  9. "github.com/gravitl/netmaker/netclient/ncutils"
  10. )
  11. func setRoute(iface string, addr *net.IPNet) error {
  12. out, err := ncutils.RunCmd(fmt.Sprintf("ip route get %s", addr.IP.String()), false)
  13. if err != nil || !strings.Contains(out, iface) {
  14. _, err = ncutils.RunCmd(fmt.Sprintf("ip route add %s dev %s", addr.String(), iface), true)
  15. }
  16. return err
  17. }
  18. func deleteRoute(iface string, addr *net.IPNet) error {
  19. var err error
  20. out, _ := ncutils.RunCmd(fmt.Sprintf("ip route get %s", addr.IP.String()), false)
  21. if strings.Contains(out, iface) {
  22. _, err = ncutils.RunCmd(fmt.Sprintf("ip route del %s dev %s", addr.String(), iface), true)
  23. }
  24. return err
  25. }