use absolute paths on darwin and windows (#191)
We want to make sure to use the system binaries, and not whatever is in the PATH.
This commit is contained in:
parent
eda344d88f
commit
df69371620
|
@ -42,18 +42,18 @@ func (c *Tun) Activate() error {
|
||||||
c.Device = c.Interface.Name()
|
c.Device = c.Interface.Name()
|
||||||
|
|
||||||
// TODO use syscalls instead of exec.Command
|
// TODO use syscalls instead of exec.Command
|
||||||
if err = exec.Command("ifconfig", c.Device, c.Cidr.String(), c.Cidr.IP.String()).Run(); err != nil {
|
if err = exec.Command("/sbin/ifconfig", c.Device, c.Cidr.String(), c.Cidr.IP.String()).Run(); err != nil {
|
||||||
return fmt.Errorf("failed to run 'ifconfig': %s", err)
|
return fmt.Errorf("failed to run 'ifconfig': %s", err)
|
||||||
}
|
}
|
||||||
if err = exec.Command("route", "-n", "add", "-net", c.Cidr.String(), "-interface", c.Device).Run(); err != nil {
|
if err = exec.Command("/sbin/route", "-n", "add", "-net", c.Cidr.String(), "-interface", c.Device).Run(); err != nil {
|
||||||
return fmt.Errorf("failed to run 'route add': %s", err)
|
return fmt.Errorf("failed to run 'route add': %s", err)
|
||||||
}
|
}
|
||||||
if err = exec.Command("ifconfig", c.Device, "mtu", strconv.Itoa(c.MTU)).Run(); err != nil {
|
if err = exec.Command("/sbin/ifconfig", c.Device, "mtu", strconv.Itoa(c.MTU)).Run(); err != nil {
|
||||||
return fmt.Errorf("failed to run 'ifconfig': %s", err)
|
return fmt.Errorf("failed to run 'ifconfig': %s", err)
|
||||||
}
|
}
|
||||||
// Unsafe path routes
|
// Unsafe path routes
|
||||||
for _, r := range c.UnsafeRoutes {
|
for _, r := range c.UnsafeRoutes {
|
||||||
if err = exec.Command("route", "-n", "add", "-net", r.route.String(), "-interface", c.Device).Run(); err != nil {
|
if err = exec.Command("/sbin/route", "-n", "add", "-net", r.route.String(), "-interface", c.Device).Run(); err != nil {
|
||||||
return fmt.Errorf("failed to run 'route add' for unsafe_route %s: %s", r.route.String(), err)
|
return fmt.Errorf("failed to run 'route add' for unsafe_route %s: %s", r.route.String(), err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ func (c *Tun) Activate() error {
|
||||||
|
|
||||||
// TODO use syscalls instead of exec.Command
|
// TODO use syscalls instead of exec.Command
|
||||||
err = exec.Command(
|
err = exec.Command(
|
||||||
"netsh", "interface", "ipv4", "set", "address",
|
`C:\Windows\System32\netsh.exe`, "interface", "ipv4", "set", "address",
|
||||||
fmt.Sprintf("name=%s", c.Device),
|
fmt.Sprintf("name=%s", c.Device),
|
||||||
"source=static",
|
"source=static",
|
||||||
fmt.Sprintf("addr=%s", c.Cidr.IP),
|
fmt.Sprintf("addr=%s", c.Cidr.IP),
|
||||||
|
@ -58,7 +58,7 @@ func (c *Tun) Activate() error {
|
||||||
return fmt.Errorf("failed to run 'netsh' to set address: %s", err)
|
return fmt.Errorf("failed to run 'netsh' to set address: %s", err)
|
||||||
}
|
}
|
||||||
err = exec.Command(
|
err = exec.Command(
|
||||||
"netsh", "interface", "ipv4", "set", "interface",
|
`C:\Windows\System32\netsh.exe`, "interface", "ipv4", "set", "interface",
|
||||||
c.Device,
|
c.Device,
|
||||||
fmt.Sprintf("mtu=%d", c.MTU),
|
fmt.Sprintf("mtu=%d", c.MTU),
|
||||||
).Run()
|
).Run()
|
||||||
|
|
Loading…
Reference in New Issue