summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile3
-rw-r--r--bitmask_go/bonafide.go4
-rw-r--r--bitmask_go/vpn.go25
3 files changed, 23 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index 74c0c44..ef69b50 100644
--- a/Makefile
+++ b/Makefile
@@ -16,6 +16,9 @@ test:
build_go:
go build -tags "$(TAGS) bitmask_go" -ldflags "-X main.version=`git describe --tags`"
+build_win:
+ go build -tags "bitmask_go" -ldflags "-H windowsgui"
+
clean:
make -C icon clean
rm bitmask-systray
diff --git a/bitmask_go/bonafide.go b/bitmask_go/bonafide.go
index 97d83c9..449383e 100644
--- a/bitmask_go/bonafide.go
+++ b/bitmask_go/bonafide.go
@@ -25,6 +25,7 @@ import (
"net/http"
"sort"
"strconv"
+ "strings"
"time"
)
@@ -150,7 +151,8 @@ func (b *bonafide) getOpenvpnArgs() ([]string, error) {
for arg, value := range b.eip.OpenvpnConfiguration {
switch v := value.(type) {
case string:
- args = append(args, "--"+arg, v)
+ args = append(args, "--"+arg)
+ args = append(args, strings.Split(v, " ")...)
case bool:
if v {
args = append(args, "--"+arg)
diff --git a/bitmask_go/vpn.go b/bitmask_go/vpn.go
index 2a0862b..44fa768 100644
--- a/bitmask_go/vpn.go
+++ b/bitmask_go/vpn.go
@@ -36,21 +36,30 @@ func (b *Bitmask) StartVPN(provider string) error {
return err
}
- arg := []string{"--nobind", "--verb", "1"}
- if runtime.GOOS == "windows" {
- arg = append(arg, "--dev", "tun", "--log", `C:\bitmask\openvp.log`)
- }
-
- bonafideArgs, err := b.bonafide.getOpenvpnArgs()
+ arg, err := b.bonafide.getOpenvpnArgs()
if err != nil {
return err
}
- arg = append(arg, bonafideArgs...)
for _, gw := range gateways {
arg = append(arg, "--remote", gw.IPAddress, "443", "tcp4")
}
certPemPath := b.getCertPemPath()
- arg = append(arg, "--client", "--tls-client", "--remote-cert-tls", "server", "--management-client", "--management", openvpnManagementAddr+" "+openvpnManagementPort, "--ca", b.getCaCertPath(), "--cert", certPemPath, "--key", certPemPath)
+ arg = append(arg,
+ "--nobind",
+ "--verb", "1",
+ "--dev", "tun",
+ "--client",
+ "--tls-client",
+ "--remote-cert-tls", "server",
+ "--script-security", "1",
+ "--management-client",
+ "--management", openvpnManagementAddr, openvpnManagementPort,
+ "--ca", b.getCaCertPath(),
+ "--cert", certPemPath,
+ "--key", certPemPath)
+ if runtime.GOOS == "windows" {
+ arg = append(arg, "--log", `C:\bitmask\openvp.log`)
+ }
return b.launch.openvpnStart(arg...)
}