Files
cunicu/pkg/device/device_darwin.go
T
Steffen Vogel 7391bfcbc9 device: use run() wrapper everywhere
Signed-off-by: Steffen Vogel <post@steffenvogel.de>
2022-10-14 21:30:26 +02:00

42 lines
864 B
Go

package device
import (
"fmt"
"net"
"github.com/stv0g/cunicu/pkg/errors"
"go.uber.org/zap"
)
func (d *BSDKernelDevice) AddRoute(dst net.IPNet, gw net.IP, table int) error {
d.logger.Debug("Add route",
zap.String("dst", dst.String()),
zap.String("gw", gw.String()))
if table != 0 {
return errors.ErrNotSupported
}
args := []string{"route", "add", fmt.Sprintf("-%s", addressFamily(dst)), "-net", dst.String()}
if gw == nil {
args = append(args, "-interface", d.Name())
} else {
args = append(args, gw.String())
}
_, err := run(args...)
return err
}
func (d *BSDKernelDevice) DeleteRoute(dst net.IPNet, table int) error {
d.logger.Debug("Delete route",
zap.String("dst", dst.String()))
if table != 0 {
return errors.ErrNotSupported
}
_, err := run("route", "delete", "-net", dst.String(), "-interface", d.Name())
return err
}