mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-12 08:04:25 +08:00
added verbose command logs
This commit is contained in:
parent
31ea969e3d
commit
5c3bcbc32a
10 changed files with 68 additions and 136 deletions
2
main.go
2
main.go
|
@ -38,7 +38,7 @@ func initialize() { // Client Mode Prereq Check
|
||||||
}
|
}
|
||||||
log.Println("database successfully connected.")
|
log.Println("database successfully connected.")
|
||||||
if servercfg.IsClientMode() {
|
if servercfg.IsClientMode() {
|
||||||
output, err := local.RunCmd("id -u")
|
output, err := local.RunCmd("id -u", true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("Error running 'id -u' for prereq check. Please investigate or disable client mode.")
|
log.Println("Error running 'id -u' for prereq check. Please investigate or disable client mode.")
|
||||||
log.Fatal(output, err)
|
log.Fatal(output, err)
|
||||||
|
|
|
@ -26,7 +26,7 @@ func Join(cfg config.ClientConfig, privateKey string) error {
|
||||||
|
|
||||||
err := functions.JoinNetwork(cfg, privateKey)
|
err := functions.JoinNetwork(cfg, privateKey)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil && !cfg.DebugJoin {
|
||||||
if !strings.Contains(err.Error(), "ALREADY_INSTALLED") {
|
if !strings.Contains(err.Error(), "ALREADY_INSTALLED") {
|
||||||
log.Println("Error installing: ", err)
|
log.Println("Error installing: ", err)
|
||||||
err = functions.LeaveNetwork(cfg.Network)
|
err = functions.LeaveNetwork(cfg.Network)
|
||||||
|
|
|
@ -8,7 +8,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/gravitl/netmaker/models"
|
"github.com/gravitl/netmaker/models"
|
||||||
"github.com/gravitl/netmaker/netclient/netclientutils"
|
"github.com/gravitl/netmaker/netclient/netclientutils"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
|
@ -26,6 +25,7 @@ type ClientConfig struct {
|
||||||
Network string `yaml:"network"`
|
Network string `yaml:"network"`
|
||||||
Daemon string `yaml:"daemon"`
|
Daemon string `yaml:"daemon"`
|
||||||
OperatingSystem string `yaml:"operatingsystem"`
|
OperatingSystem string `yaml:"operatingsystem"`
|
||||||
|
DebugJoin bool `yaml:"debugjoin"`
|
||||||
}
|
}
|
||||||
type ServerConfig struct {
|
type ServerConfig struct {
|
||||||
CoreDNSAddr string `yaml:"corednsaddr"`
|
CoreDNSAddr string `yaml:"corednsaddr"`
|
||||||
|
|
|
@ -178,20 +178,15 @@ func DeleteInterface(ifacename string, postdown string) error {
|
||||||
if netclientutils.IsWindows() {
|
if netclientutils.IsWindows() {
|
||||||
err = local.RemoveWindowsConf(ifacename)
|
err = local.RemoveWindowsConf(ifacename)
|
||||||
} else {
|
} else {
|
||||||
ipExec, err := exec.LookPath("ip")
|
ipExec, errN := exec.LookPath("ip")
|
||||||
|
err = errN
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
out, err := local.RunCmd(ipExec + " link del " + ifacename)
|
_, err = local.RunCmd(ipExec + " link del " + ifacename, false)
|
||||||
if err != nil {
|
|
||||||
log.Println(out, err)
|
|
||||||
}
|
|
||||||
if postdown != "" {
|
if postdown != "" {
|
||||||
runcmds := strings.Split(postdown, "; ")
|
runcmds := strings.Split(postdown, "; ")
|
||||||
err = local.RunCmds(runcmds)
|
err = local.RunCmds(runcmds, true)
|
||||||
if err != nil {
|
|
||||||
log.Println("Error encountered running PostDown: " + err.Error())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -42,20 +42,17 @@ func UpdateDNS(ifacename string, network string, nameserver string) error {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
log.Println("WARNING: resolvectl not present. Unable to set dns. Install resolvectl or run manually.")
|
log.Println("WARNING: resolvectl not present. Unable to set dns. Install resolvectl or run manually.")
|
||||||
} else {
|
} else {
|
||||||
_, err = RunCmd("resolvectl domain " + ifacename + " ~" + network)
|
_, err = RunCmd("resolvectl domain " + ifacename + " ~" + network, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
|
||||||
log.Println("WARNING: Error encountered setting domain on dns. Aborted setting dns.")
|
log.Println("WARNING: Error encountered setting domain on dns. Aborted setting dns.")
|
||||||
} else {
|
} else {
|
||||||
_, err = RunCmd("resolvectl default-route " + ifacename + " false")
|
_, err = RunCmd("resolvectl default-route " + ifacename + " false", true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
|
||||||
log.Println("WARNING: Error encountered setting default-route on dns. Aborted setting dns.")
|
log.Println("WARNING: Error encountered setting default-route on dns. Aborted setting dns.")
|
||||||
} else {
|
} else {
|
||||||
_, err = RunCmd("resolvectl dns " + ifacename + " " + nameserver)
|
_, err = RunCmd("resolvectl dns " + ifacename + " " + nameserver, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("WARNING: Error encountered running resolvectl dns " + ifacename + " " + nameserver)
|
log.Println("WARNING: Error encountered running resolvectl dns " + ifacename + " " + nameserver)
|
||||||
log.Println(err)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,17 +29,15 @@ func SetIPForwarding() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetIPForwardingLinux() error {
|
func SetIPForwardingLinux() error {
|
||||||
out, err := RunCmd("sysctl net.ipv4.ip_forward")
|
out, err := RunCmd("sysctl net.ipv4.ip_forward", true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
|
||||||
log.Println("WARNING: Error encountered setting ip forwarding. This can break functionality.")
|
log.Println("WARNING: Error encountered setting ip forwarding. This can break functionality.")
|
||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
s := strings.Fields(string(out))
|
s := strings.Fields(string(out))
|
||||||
if s[2] != "1" {
|
if s[2] != "1" {
|
||||||
_, err = RunCmd("sysctl -w net.ipv4.ip_forward=1")
|
_, err = RunCmd("sysctl -w net.ipv4.ip_forward=1", true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
|
||||||
log.Println("WARNING: Error encountered setting ip forwarding. You may want to investigate this.")
|
log.Println("WARNING: Error encountered setting ip forwarding. You may want to investigate this.")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -48,23 +46,25 @@ func SetIPForwardingLinux() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func RunCmd(command string) (string, error) {
|
func RunCmd(command string, printerr bool) (string, error) {
|
||||||
args := strings.Fields(command)
|
args := strings.Fields(command)
|
||||||
out, err := exec.Command(args[0], args[1:]...).Output()
|
out, err := exec.Command(args[0], args[1:]...).CombinedOutput()
|
||||||
|
if err != nil && printerr {
|
||||||
|
log.Println("error running command:",command)
|
||||||
|
log.Println(string(out))
|
||||||
|
}
|
||||||
return string(out), err
|
return string(out), err
|
||||||
}
|
}
|
||||||
|
|
||||||
func RunCmds(commands []string) error {
|
func RunCmds(commands []string, printerr bool) error {
|
||||||
var err error
|
var err error
|
||||||
for _, command := range commands {
|
for _, command := range commands {
|
||||||
args := strings.Fields(command)
|
args := strings.Fields(command)
|
||||||
out, err := exec.Command(args[0], args[1:]...).Output()
|
out, err := exec.Command(args[0], args[1:]...).CombinedOutput()
|
||||||
if string(out) != "" {
|
if err != nil && printerr {
|
||||||
|
log.Println("error running command:",command)
|
||||||
log.Println(string(out))
|
log.Println(string(out))
|
||||||
}
|
}
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -175,26 +175,10 @@ WantedBy=timers.target
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = RunCmd("systemctl enable netclient@.service")
|
_, _ = RunCmd("systemctl enable netclient@.service", true)
|
||||||
if err != nil {
|
_, _ = RunCmd("systemctl daemon-reload", true)
|
||||||
log.Println("Error enabling netclient@.service. Please investigate.")
|
_, _ = RunCmd("systemctl enable netclient-" + network + ".timer", true)
|
||||||
log.Println(err)
|
_, _ = RunCmd("systemctl start netclient-" + network + ".timer", true)
|
||||||
}
|
|
||||||
_, err = RunCmd("systemctl daemon-reload")
|
|
||||||
if err != nil {
|
|
||||||
log.Println("Error reloading system daemons. Please investigate.")
|
|
||||||
log.Println(err)
|
|
||||||
}
|
|
||||||
_, err = RunCmd("systemctl enable netclient-" + network + ".timer")
|
|
||||||
if err != nil {
|
|
||||||
log.Println("Error enabling netclient.timer. Please investigate.")
|
|
||||||
log.Println(err)
|
|
||||||
}
|
|
||||||
_, err = RunCmd("systemctl start netclient-" + network + ".timer")
|
|
||||||
if err != nil {
|
|
||||||
log.Println("Error starting netclient-" + network + ".timer. Please investigate.")
|
|
||||||
log.Println(err)
|
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -221,21 +205,12 @@ func RemoveSystemDServices(network string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if fullremove {
|
if fullremove {
|
||||||
_, err = RunCmd("systemctl disable netclient@.service")
|
_, err = RunCmd("systemctl disable netclient@.service", true)
|
||||||
if err != nil {
|
|
||||||
log.Println("Error disabling netclient@.service. Please investigate.")
|
|
||||||
log.Println(err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
_, err = RunCmd("systemctl daemon-reload")
|
_, _ = RunCmd("systemctl daemon-reload", true)
|
||||||
if err != nil {
|
|
||||||
log.Println("Error stopping netclient-" + network + ".timer. Please investigate.")
|
if FileExists("/etc/systemd/system/netclient-" + network + ".timer") {
|
||||||
log.Println(err)
|
_, _ = RunCmd("systemctl disable netclient-" + network + ".timer", true)
|
||||||
}
|
|
||||||
_, err = RunCmd("systemctl disable netclient-" + network + ".timer")
|
|
||||||
if err != nil {
|
|
||||||
log.Println("Error disabling netclient-" + network + ".timer. Please investigate.")
|
|
||||||
log.Println(err)
|
|
||||||
}
|
}
|
||||||
if fullremove {
|
if fullremove {
|
||||||
if FileExists("/etc/systemd/system/netclient@.service") {
|
if FileExists("/etc/systemd/system/netclient@.service") {
|
||||||
|
@ -249,17 +224,8 @@ func RemoveSystemDServices(network string) error {
|
||||||
log.Println("Error removing file. Please investigate.")
|
log.Println("Error removing file. Please investigate.")
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
_, err = RunCmd("systemctl daemon-reload")
|
_, _ = RunCmd("systemctl daemon-reload", true)
|
||||||
if err != nil {
|
_, _ = RunCmd("systemctl reset-failed", true)
|
||||||
log.Println("Error reloading system daemons. Please investigate.")
|
|
||||||
log.Println(err)
|
|
||||||
}
|
|
||||||
_, err = RunCmd("systemctl reset-failed")
|
|
||||||
if err != nil {
|
|
||||||
log.Println("Error reseting failed system services. Please investigate.")
|
|
||||||
log.Println(err)
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -291,7 +257,7 @@ func WipeLocal(network string) error {
|
||||||
|
|
||||||
if ifacename != "" {
|
if ifacename != "" {
|
||||||
if netclientutils.IsWindows() {
|
if netclientutils.IsWindows() {
|
||||||
if err := RemoveWindowsConf(ifacename); err == nil {
|
if err = RemoveWindowsConf(ifacename); err == nil {
|
||||||
log.Println("removed Windows interface", ifacename)
|
log.Println("removed Windows interface", ifacename)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -299,16 +265,15 @@ func WipeLocal(network string) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
out, err := RunCmd(ipExec + " link del " + ifacename)
|
out, err := RunCmd(ipExec + " link del " + ifacename, false)
|
||||||
if err != nil {
|
dontprint := strings.Contains(out, "does not exist") || strings.Contains(out, "Cannot find device")
|
||||||
log.Println(out, err)
|
if err != nil && !dontprint {
|
||||||
|
log.Println("error running command:",ipExec + " link del " + ifacename)
|
||||||
|
log.Println(out)
|
||||||
}
|
}
|
||||||
if nodecfg.PostDown != "" {
|
if nodecfg.PostDown != "" {
|
||||||
runcmds := strings.Split(nodecfg.PostDown, "; ")
|
runcmds := strings.Split(nodecfg.PostDown, "; ")
|
||||||
err = RunCmds(runcmds)
|
_ = RunCmds(runcmds, false)
|
||||||
if err != nil {
|
|
||||||
log.Println("Error encountered running PostDown: " + err.Error())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func IsWindowsWGInstalled() bool {
|
func IsWindowsWGInstalled() bool {
|
||||||
out, err := RunCmd("wg help")
|
out, err := RunCmd("wg help", true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
@ -21,14 +21,14 @@ func IsWindowsWGInstalled() bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func ApplyWindowsConf(confPath string) error {
|
func ApplyWindowsConf(confPath string) error {
|
||||||
if _, err := RunCmd("wireguard.exe /installtunnelservice " + confPath); err != nil {
|
if _, err := RunCmd("wireguard.exe /installtunnelservice " + confPath, true); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func RemoveWindowsConf(ifacename string) error {
|
func RemoveWindowsConf(ifacename string) error {
|
||||||
if _, err := RunCmd("wireguard.exe /uninstalltunnelservice " + ifacename); err != nil {
|
if _, err := RunCmd("wireguard.exe /uninstalltunnelservice " + ifacename, true); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -58,12 +58,12 @@ func writeServiceConfig() error {
|
||||||
func StopWindowsDaemon() {
|
func StopWindowsDaemon() {
|
||||||
netclientutils.Log("no networks detected, stopping Windows, Netclient daemon")
|
netclientutils.Log("no networks detected, stopping Windows, Netclient daemon")
|
||||||
// stop daemon, will not overwrite
|
// stop daemon, will not overwrite
|
||||||
RunCmd(strings.Replace(netclientutils.GetNetclientPathSpecific(), `\\`, `\`, -1) + `winsw.exe stop`)
|
RunCmd(strings.Replace(netclientutils.GetNetclientPathSpecific(), `\\`, `\`, -1) + `winsw.exe stop`, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func RemoveWindowsDaemon() {
|
func RemoveWindowsDaemon() {
|
||||||
// uninstall daemon, will not restart or start another
|
// uninstall daemon, will not restart or start another
|
||||||
RunCmd(strings.Replace(netclientutils.GetNetclientPathSpecific(), `\\`, `\`, -1) + `winsw.exe uninstall`)
|
RunCmd(strings.Replace(netclientutils.GetNetclientPathSpecific(), `\\`, `\`, -1) + `winsw.exe uninstall`, true)
|
||||||
netclientutils.Log("uninstalled Windows, Netclient daemon")
|
netclientutils.Log("uninstalled Windows, Netclient daemon")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -144,9 +144,9 @@ func CreateAndRunWindowsDaemon() error {
|
||||||
netclientutils.Log("finished daemon setup")
|
netclientutils.Log("finished daemon setup")
|
||||||
}
|
}
|
||||||
// install daemon, will not overwrite
|
// install daemon, will not overwrite
|
||||||
RunCmd(strings.Replace(netclientutils.GetNetclientPathSpecific(), `\\`, `\`, -1) + `winsw.exe install`)
|
RunCmd(strings.Replace(netclientutils.GetNetclientPathSpecific(), `\\`, `\`, -1) + `winsw.exe install`, true)
|
||||||
// start daemon, will not restart or start another
|
// start daemon, will not restart or start another
|
||||||
RunCmd(strings.Replace(netclientutils.GetNetclientPathSpecific(), `\\`, `\`, -1) + `winsw.exe start`)
|
RunCmd(strings.Replace(netclientutils.GetNetclientPathSpecific(), `\\`, `\`, -1) + `winsw.exe start`, true)
|
||||||
netclientutils.Log(strings.Replace(netclientutils.GetNetclientPathSpecific(), `\\`, `\`, -1) + `winsw.exe start`)
|
netclientutils.Log(strings.Replace(netclientutils.GetNetclientPathSpecific(), `\\`, `\`, -1) + `winsw.exe start`)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -324,7 +324,7 @@ func main() {
|
||||||
ncwindows.InitWindows()
|
ncwindows.InitWindows()
|
||||||
} else {
|
} else {
|
||||||
// start our application
|
// start our application
|
||||||
out, err := local.RunCmd("id -u")
|
out, err := local.RunCmd("id -u", true)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(out, err)
|
log.Fatal(out, err)
|
||||||
|
|
|
@ -68,19 +68,9 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
_, delErr := local.RunCmd("ip link delete dev " + ifacename)
|
_, _ = local.RunCmd("ip link delete dev " + ifacename, false)
|
||||||
addLinkOut, addLinkErr := local.RunCmd(ipExec + " link add dev " + ifacename + " type wireguard")
|
_, _ = local.RunCmd(ipExec + " link add dev " + ifacename + " type wireguard", true)
|
||||||
addOut, addErr := local.RunCmd(ipExec + " address add dev " + ifacename + " " + node.Address + "/24")
|
_, _ = local.RunCmd(ipExec + " address add dev " + ifacename + " " + node.Address + "/24", true)
|
||||||
if delErr != nil {
|
|
||||||
// not displaying error
|
|
||||||
// log.Println(delOut, delErr)
|
|
||||||
}
|
|
||||||
if addLinkErr != nil {
|
|
||||||
log.Println(addLinkOut, addLinkErr)
|
|
||||||
}
|
|
||||||
if addErr != nil {
|
|
||||||
log.Println(addOut, addErr)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
var nodeport int
|
var nodeport int
|
||||||
nodeport = int(node.ListenPort)
|
nodeport = int(node.ListenPort)
|
||||||
|
@ -151,47 +141,33 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
|
||||||
_ = local.UpdateDNS(ifacename, network, nameserver)
|
_ = local.UpdateDNS(ifacename, network, nameserver)
|
||||||
}
|
}
|
||||||
//=========End DNS Setup=======\\
|
//=========End DNS Setup=======\\
|
||||||
if _, err := local.RunCmd(ipExec + " link set down dev " + ifacename); err != nil {
|
if _, err := local.RunCmd(ipExec + " link set down dev " + ifacename, false); err != nil {
|
||||||
netclientutils.Log("attempted to remove interface before editing")
|
netclientutils.Log("attempted to remove interface before editing")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if nodecfg.PostDown != "" {
|
if nodecfg.PostDown != "" {
|
||||||
runcmds := strings.Split(nodecfg.PostDown, "; ")
|
runcmds := strings.Split(nodecfg.PostDown, "; ")
|
||||||
err = local.RunCmds(runcmds)
|
err = local.RunCmds(runcmds, true)
|
||||||
if err != nil {
|
|
||||||
fmt.Println("Error encountered running PostDown: " + err.Error())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// set MTU of node interface
|
// set MTU of node interface
|
||||||
if _, err := local.RunCmd(ipExec + " link set mtu " + strconv.Itoa(int(nodecfg.MTU)) + " up dev " + ifacename); err != nil {
|
if _, err := local.RunCmd(ipExec + " link set mtu " + strconv.Itoa(int(nodecfg.MTU)) + " up dev " + ifacename, true); err != nil {
|
||||||
netclientutils.Log("failed to create interface with mtu " + ifacename)
|
netclientutils.Log("failed to create interface with mtu " + ifacename)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if nodecfg.PostUp != "" {
|
if nodecfg.PostUp != "" {
|
||||||
runcmds := strings.Split(nodecfg.PostUp, "; ")
|
runcmds := strings.Split(nodecfg.PostUp, "; ")
|
||||||
err = local.RunCmds(runcmds)
|
err = local.RunCmds(runcmds, true)
|
||||||
if err != nil {
|
|
||||||
fmt.Println("Error encountered running PostUp: " + err.Error())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if hasGateway {
|
if hasGateway {
|
||||||
for _, gateway := range gateways {
|
for _, gateway := range gateways {
|
||||||
out, err := local.RunCmd(ipExec + " -4 route add " + gateway + " dev " + ifacename)
|
_, _ = local.RunCmd(ipExec + " -4 route add " + gateway + " dev " + ifacename, true)
|
||||||
fmt.Println(string(out))
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println("error encountered adding gateway: " + err.Error())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if node.Address6 != "" && node.IsDualStack == "yes" {
|
if node.Address6 != "" && node.IsDualStack == "yes" {
|
||||||
fmt.Println("adding address: " + node.Address6)
|
log.Println("[netclient] adding address: " + node.Address6, 1)
|
||||||
out, err := local.RunCmd(ipExec + " address add dev " + ifacename + " " + node.Address6 + "/64")
|
_, _ = local.RunCmd(ipExec + " address add dev " + ifacename + " " + node.Address6 + "/64", true)
|
||||||
if err != nil {
|
|
||||||
fmt.Println(out)
|
|
||||||
fmt.Println("error encountered adding ipv6: " + err.Error())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
|
@ -287,9 +263,9 @@ func SetPeers(iface string, keepalive int32, peers []wgtypes.PeerConfig) error {
|
||||||
for _, currentPeer := range devicePeers {
|
for _, currentPeer := range devicePeers {
|
||||||
if currentPeer.AllowedIPs[0].String() == peer.AllowedIPs[0].String() &&
|
if currentPeer.AllowedIPs[0].String() == peer.AllowedIPs[0].String() &&
|
||||||
currentPeer.PublicKey.String() != peer.PublicKey.String() {
|
currentPeer.PublicKey.String() != peer.PublicKey.String() {
|
||||||
output, err := local.RunCmd("wg set " + iface + " peer " + currentPeer.PublicKey.String() + " remove")
|
_, err := local.RunCmd("wg set " + iface + " peer " + currentPeer.PublicKey.String() + " remove", true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(output, "error removing peer", peer.Endpoint.String())
|
log.Println("error removing peer", peer.Endpoint.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -304,19 +280,18 @@ func SetPeers(iface string, keepalive int32, peers []wgtypes.PeerConfig) error {
|
||||||
if keepAliveString == "0" {
|
if keepAliveString == "0" {
|
||||||
keepAliveString = "5"
|
keepAliveString = "5"
|
||||||
}
|
}
|
||||||
var output string
|
|
||||||
if peer.Endpoint != nil {
|
if peer.Endpoint != nil {
|
||||||
output, err = local.RunCmd("wg set " + iface + " peer " + peer.PublicKey.String() +
|
_, err = local.RunCmd("wg set " + iface + " peer " + peer.PublicKey.String() +
|
||||||
" endpoint " + udpendpoint +
|
" endpoint " + udpendpoint +
|
||||||
" persistent-keepalive " + keepAliveString +
|
" persistent-keepalive " + keepAliveString +
|
||||||
" allowed-ips " + allowedips)
|
" allowed-ips " + allowedips, true)
|
||||||
} else {
|
} else {
|
||||||
output, err = local.RunCmd("wg set " + iface + " peer " + peer.PublicKey.String() +
|
_, err = local.RunCmd("wg set " + iface + " peer " + peer.PublicKey.String() +
|
||||||
" persistent-keepalive " + keepAliveString +
|
" persistent-keepalive " + keepAliveString +
|
||||||
" allowed-ips " + allowedips)
|
" allowed-ips " + allowedips, true)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(output, "error setting peer", peer.PublicKey.String(), err)
|
log.Println("error setting peer", peer.PublicKey.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -328,11 +303,9 @@ func SetPeers(iface string, keepalive int32, peers []wgtypes.PeerConfig) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if shouldDelete {
|
if shouldDelete {
|
||||||
output, err := local.RunCmd("wg set " + iface + " peer " + currentPeer.PublicKey.String() + " remove")
|
output, err := local.RunCmd("wg set " + iface + " peer " + currentPeer.PublicKey.String() + " remove", true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(output, "error removing peer", currentPeer.PublicKey.String())
|
log.Println(output, "error removing peer", currentPeer.PublicKey.String())
|
||||||
} else {
|
|
||||||
log.Println("removed peer " + currentPeer.PublicKey.String())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,6 +138,8 @@ func AddNetwork(network string) (bool, error) {
|
||||||
functions.PrintUserLog(models.NODE_SERVER_NAME, "executing network join: "+netclientPath+"netclient "+"join "+"-t "+token+" -name "+models.NODE_SERVER_NAME+" -endpoint "+pubip, 0)
|
functions.PrintUserLog(models.NODE_SERVER_NAME, "executing network join: "+netclientPath+"netclient "+"join "+"-t "+token+" -name "+models.NODE_SERVER_NAME+" -endpoint "+pubip, 0)
|
||||||
|
|
||||||
joinCMD := exec.Command(netclientPath+"netclient", "join", "-t", token, "-name", models.NODE_SERVER_NAME, "-endpoint", pubip)
|
joinCMD := exec.Command(netclientPath+"netclient", "join", "-t", token, "-name", models.NODE_SERVER_NAME, "-endpoint", pubip)
|
||||||
|
joinCMD.Stdout = os.Stdout
|
||||||
|
joinCMD.Stderr = os.Stderr
|
||||||
err = joinCMD.Start()
|
err = joinCMD.Start()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Add table
Reference in a new issue