|
@@ -1,6 +1,7 @@
|
|
|
package wireguard
|
|
|
|
|
|
import (
|
|
|
+ "errors"
|
|
|
"fmt"
|
|
|
"io/ioutil"
|
|
|
"log"
|
|
@@ -221,11 +222,22 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
|
|
|
var output string
|
|
|
starttime := time.Now()
|
|
|
ncutils.PrintLog("waiting for interface...", 1)
|
|
|
- for !strings.Contains(output, ifacename) && !(time.Now().After(starttime.Add(time.Minute))) {
|
|
|
+ for !strings.Contains(output, ifacename) && !(time.Now().After(starttime.Add(time.Duration(10) * time.Second))) {
|
|
|
output, _ = ncutils.RunCmd("wg", false)
|
|
|
time.Sleep(time.Second >> 1)
|
|
|
err = ApplyConf(confPath)
|
|
|
}
|
|
|
+ if !strings.Contains(output, ifacename) {
|
|
|
+ return errors.New("could not create wg interface for " + ifacename)
|
|
|
+ }
|
|
|
+ ip, mask, err := ncutils.GetNetworkIPMask(nodecfg.NetworkSettings.AddressRange)
|
|
|
+ if err != nil {
|
|
|
+ log.Println(err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ log.Println("ip", ip)
|
|
|
+ log.Println("mask", mask)
|
|
|
+ _, _ = ncutils.RunCmd("route add "+ip+" mask "+mask+" "+node.Address, true)
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
@@ -290,13 +302,7 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
|
|
|
}
|
|
|
|
|
|
//extra network route setting required for freebsd and windows
|
|
|
- if ncutils.IsWindows() {
|
|
|
- ip, mask, err := ncutils.GetNetworkIPMask(nodecfg.NetworkSettings.AddressRange)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- _, _ = ncutils.RunCmd("route add "+ip+" mask "+mask+" "+node.Address, true)
|
|
|
- } else if ncutils.IsFreeBSD() {
|
|
|
+ if ncutils.IsFreeBSD() {
|
|
|
_, _ = ncutils.RunCmd("route add -net "+nodecfg.NetworkSettings.AddressRange+" -interface "+ifacename, true)
|
|
|
}
|
|
|
|