Use sudo instead of a custom script

This commit is contained in:
Xavier Henner
2019-07-11 14:40:46 +02:00
parent f73b2c117a
commit 3c0434ee1f
5 changed files with 9 additions and 56 deletions

View File

@@ -71,8 +71,13 @@ func (c *vpnSession) baseHash(salt string, i int64) string {
return fmt.Sprintf("%s%s%s%s", salt, c.Login, c.IP, i)
}
func (c *vpnSession) AddRoute(script, ip string) error {
cmd := exec.Command(script, "route", "replace", ip, "dev", c.dev)
func (c *vpnSession) AddRoute(ip string) error {
var cmd *exec.Cmd
if os.Geteuid() == 0 {
cmd = exec.Command("/bin/ip", "route", "replace", ip, "dev", c.dev)
} else {
cmd = exec.Command("/usr/bin/sudo", "/bin/ip", "route", "replace", ip, "dev", c.dev)
}
return cmd.Run()
}
@@ -193,7 +198,7 @@ func (c *vpnSession) Auth(s *OpenVpnMgt) {
ok = -10
err = errIP
} else {
if err := c.AddRoute(s.ipRouteScript, ip); err != nil {
if err := c.AddRoute(ip); err != nil {
c.LogPrintln(err)
}
}