summaryrefslogtreecommitdiff
path: root/pkg/helper/darwin.go
diff options
context:
space:
mode:
authorkali kaneko (leap communications) <kali@leap.se>2021-11-30 18:49:00 +0100
committerkali kaneko (leap communications) <kali@leap.se>2021-11-30 21:22:45 +0100
commit52206cc7dda3d12d92dad3181e27b680c70e69e3 (patch)
treea28f33a102f2d703a622b9f332e98c913e3d3095 /pkg/helper/darwin.go
parent0419a17814fba437e111d0335fb05a9806f9589f (diff)
[feat] udp nameservers
Diffstat (limited to 'pkg/helper/darwin.go')
-rw-r--r--pkg/helper/darwin.go17
1 files changed, 11 insertions, 6 deletions
diff --git a/pkg/helper/darwin.go b/pkg/helper/darwin.go
index 7269981..a9f8e00 100644
--- a/pkg/helper/darwin.go
+++ b/pkg/helper/darwin.go
@@ -29,11 +29,11 @@ package helper
import (
"errors"
"fmt"
- "path/filepath"
"log"
"os"
"os/exec"
"path"
+ "path/filepath"
"strconv"
"strings"
@@ -43,8 +43,8 @@ import (
const (
bitmask_anchor = "com.apple/250.BitmaskFirewall"
gateways_table = "bitmask_gateways"
- pfctl = "/sbin/pfctl"
- LogFolder = "/var/log/"
+ pfctl = "/sbin/pfctl"
+ LogFolder = "/var/log/"
)
func _getExecPath() string {
@@ -119,9 +119,9 @@ func kill(cmd *exec.Cmd) error {
return nil
}
-func firewallStart(gateways []string) error {
+func firewallStart(gateways []string, mode string) error {
enablePf()
- err := resetGatewaysTable(gateways)
+ err := resetGatewaysTable(gateways, mode)
if err != nil {
return err
}
@@ -155,7 +155,7 @@ func enablePf() {
cmd.Run()
}
-func resetGatewaysTable(gateways []string) error {
+func resetGatewaysTable(gateways []string, mode string) error {
log.Println("Resetting gateways")
cmd := exec.Command(pfctl, "-a", bitmask_anchor, "-t", gateways_table, "-T", "delete")
err := cmd.Run()
@@ -172,6 +172,11 @@ func resetGatewaysTable(gateways []string) error {
}
}
+ nameserver := nameserverTCP
+ if mode == "udp" {
+ nameserver = nameserverUDP
+ }
+
cmd = exec.Command(pfctl, "-a", bitmask_anchor, "-t", gateways_table, "-T", "add", nameserver)
return cmd.Run()