diff --git a/netclient/ncutils/netclientutils_darwin.go b/netclient/ncutils/netclientutils_darwin.go index cc4e5f31..72eb10b5 100644 --- a/netclient/ncutils/netclientutils_darwin.go +++ b/netclient/ncutils/netclientutils_darwin.go @@ -1,9 +1,13 @@ package ncutils import ( + "fmt" "log" "os/exec" + "strconv" "strings" + + "golang.zx2c4.com/wireguard/wgctrl/wgtypes" ) // RunCmd - runs a local command @@ -19,6 +23,10 @@ func RunCmd(command string, printerr bool) (string, error) { return string(out), err } +func RunCmdFormatted(command string, printerr bool) (string, error) { + return "", nil +} + // CreateUserSpaceConf - creates a user space WireGuard conf func CreateUserSpaceConf(address string, privatekey string, listenPort string, mtu int32, fwmark int32, perskeepalive int32, peers []wgtypes.PeerConfig) (string, error) { peersString, err := parsePeers(perskeepalive, peers) diff --git a/netclient/ncutils/netclientutils_freebsd.go b/netclient/ncutils/netclientutils_freebsd.go index ebfb7f10..338980e5 100644 --- a/netclient/ncutils/netclientutils_freebsd.go +++ b/netclient/ncutils/netclientutils_freebsd.go @@ -2,13 +2,20 @@ package ncutils import ( "context" + "fmt" + "golang.zx2c4.com/wireguard/wgctrl/wgtypes" "log" "os/exec" + "strconv" "strings" "syscall" "time" ) +func RunCmdFormatted(command string, printerr bool) (string, error) { + return "", nil +} + // Runs Commands for FreeBSD func RunCmd(command string, printerr bool) (string, error) { args := strings.Fields(command) @@ -27,3 +34,39 @@ func RunCmd(command string, printerr bool) (string, error) { } return string(out), err } + +// CreateUserSpaceConf - creates a user space WireGuard conf +func CreateUserSpaceConf(address string, privatekey string, listenPort string, mtu int32, fwmark int32, perskeepalive int32, peers []wgtypes.PeerConfig) (string, error) { + peersString, err := parsePeers(perskeepalive, peers) + var listenPortString string + var fwmarkString string + if mtu <= 0 { + mtu = 1280 + } + if listenPort != "" { + listenPortString += "ListenPort = " + listenPort + } + if fwmark != 0 { + fwmarkString += "FWMark = " + strconv.Itoa(int(fwmark)) + } + if err != nil { + return "", err + } + config := fmt.Sprintf(`[Interface] +Address = %s +PrivateKey = %s +MTU = %s +%s +%s + +%s + +`, + address+"/32", + privatekey, + strconv.Itoa(int(mtu)), + listenPortString, + fwmarkString, + peersString) + return config, nil +} diff --git a/netclient/ncutils/netclientutils_linux.go b/netclient/ncutils/netclientutils_linux.go index cc4e5f31..72eb10b5 100644 --- a/netclient/ncutils/netclientutils_linux.go +++ b/netclient/ncutils/netclientutils_linux.go @@ -1,9 +1,13 @@ package ncutils import ( + "fmt" "log" "os/exec" + "strconv" "strings" + + "golang.zx2c4.com/wireguard/wgctrl/wgtypes" ) // RunCmd - runs a local command @@ -19,6 +23,10 @@ func RunCmd(command string, printerr bool) (string, error) { return string(out), err } +func RunCmdFormatted(command string, printerr bool) (string, error) { + return "", nil +} + // CreateUserSpaceConf - creates a user space WireGuard conf func CreateUserSpaceConf(address string, privatekey string, listenPort string, mtu int32, fwmark int32, perskeepalive int32, peers []wgtypes.PeerConfig) (string, error) { peersString, err := parsePeers(perskeepalive, peers)