routes_freebsd.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package local
  2. import (
  3. "net"
  4. "github.com/gravitl/netmaker/logger"
  5. "github.com/gravitl/netmaker/netclient/ncutils"
  6. "github.com/seancfoley/ipaddress-go/ipaddr"
  7. )
  8. func setRoute(iface string, addr *net.IPNet, address string) error {
  9. var err error
  10. _, _ = ncutils.RunCmd("route add -net "+addr.String()+" -interface "+iface, false)
  11. return err
  12. }
  13. func deleteRoute(iface string, addr *net.IPNet, address string) error {
  14. var err error
  15. _, _ = ncutils.RunCmd("route delete -net "+addr.String()+" -interface "+iface, false)
  16. return err
  17. }
  18. func setCidr(iface, address string, addr *net.IPNet) {
  19. cidr := ipaddr.NewIPAddressString(addr.String()).GetAddress()
  20. if cidr.IsIPv4() {
  21. ncutils.RunCmd("route add -net "+addr.String()+" -interface "+iface, false)
  22. } else if cidr.IsIPv6() {
  23. ncutils.RunCmd("route add -net -inet6 "+addr.String()+" -interface "+iface, false)
  24. } else {
  25. logger.Log(1, "could not parse address: "+addr.String())
  26. }
  27. ncutils.RunCmd("route add -net "+addr.String()+" -interface "+iface, false)
  28. }
  29. func removeCidr(iface string, addr *net.IPNet, address string) {
  30. ncutils.RunCmd("route delete -net "+addr.String()+" -interface "+iface, false)
  31. }