mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-04 16:33:49 +08:00
freebsd join, checkin, and leave functional
This commit is contained in:
@@ -19,7 +19,9 @@ func SetIPForwarding() error {
|
||||
var err error
|
||||
switch os {
|
||||
case "linux":
|
||||
err = SetIPForwardingLinux()
|
||||
err = SetIPForwardingUnix()
|
||||
case "freebsd":
|
||||
err = SetIPForwardingFreeBSD()
|
||||
case "darwin":
|
||||
err = SetIPForwardingMac()
|
||||
default:
|
||||
@@ -29,7 +31,7 @@ func SetIPForwarding() error {
|
||||
}
|
||||
|
||||
// SetIPForwardingLinux - sets the ipforwarding for linux
|
||||
func SetIPForwardingLinux() error {
|
||||
func SetIPForwardingUnix() error {
|
||||
out, err := ncutils.RunCmd("sysctl net.ipv4.ip_forward", true)
|
||||
if err != nil {
|
||||
log.Println("WARNING: Error encountered setting ip forwarding. This can break functionality.")
|
||||
@@ -47,6 +49,25 @@ func SetIPForwardingLinux() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// SetIPForwardingLinux - sets the ipforwarding for linux
|
||||
func SetIPForwardingFreeBSD() error {
|
||||
out, err := ncutils.RunCmd("sysctl net.inet.ip.forwarding", true)
|
||||
if err != nil {
|
||||
log.Println("WARNING: Error encountered setting ip forwarding. This can break functionality.")
|
||||
return err
|
||||
} else {
|
||||
s := strings.Fields(string(out))
|
||||
if s[1] != "1" {
|
||||
_, err = ncutils.RunCmd("sysctl -w net.inet.ip.forwarding=1", true)
|
||||
if err != nil {
|
||||
log.Println("WARNING: Error encountered setting ip forwarding. You may want to investigate this.")
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// SetIPForwardingMac - sets ip forwarding for mac
|
||||
func SetIPForwardingMac() error {
|
||||
_, err := ncutils.RunCmd("sysctl -w net.inet.ip.forwarding=1", true)
|
||||
|
@@ -1,6 +1,8 @@
|
||||
package ncutils
|
||||
|
||||
import (
|
||||
"context"
|
||||
"syscall"
|
||||
"crypto/tls"
|
||||
"errors"
|
||||
"fmt"
|
||||
@@ -16,7 +18,6 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"golang.zx2c4.com/wireguard/wgctrl"
|
||||
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
||||
"google.golang.org/grpc"
|
||||
@@ -368,8 +369,14 @@ func Copy(src, dst string) (int64, error) {
|
||||
// RunCmd - runs a local command
|
||||
func RunCmd(command string, printerr bool) (string, error) {
|
||||
args := strings.Fields(command)
|
||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
||||
defer cancel()
|
||||
cmd := exec.Command(args[0], args[1:]...)
|
||||
cmd.Wait()
|
||||
cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
|
||||
go func() {
|
||||
<- ctx.Done()
|
||||
_ = syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL)
|
||||
}()
|
||||
out, err := cmd.CombinedOutput()
|
||||
if err != nil && printerr {
|
||||
log.Println("error running command:", command)
|
||||
|
@@ -279,7 +279,7 @@ func SetWGConfig(network string, peerupdate bool) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if peerupdate {
|
||||
if peerupdate && runtime.GOOS != "freebsd"{
|
||||
var iface string
|
||||
iface = nodecfg.Interface
|
||||
if ncutils.IsMac() {
|
||||
|
@@ -2,7 +2,6 @@ package wireguard
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
|
||||
"github.com/gravitl/netmaker/models"
|
||||
"github.com/gravitl/netmaker/netclient/config"
|
||||
"github.com/gravitl/netmaker/netclient/ncutils"
|
||||
@@ -50,7 +49,8 @@ func SetWGKeyConfig(network string, serveraddr string) error {
|
||||
|
||||
// ApplyWGQuickConf - applies wg-quick commands if os supports
|
||||
func ApplyWGQuickConf(confPath string) error {
|
||||
if _, err := ncutils.RunCmd("wg-quick up "+confPath, true); err != nil {
|
||||
_, _ = ncutils.RunCmd("wg-quick down "+confPath, false)
|
||||
if _, err := ncutils.RunCmd("wg-quick up "+confPath, false); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
|
Reference in New Issue
Block a user