summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorKali Kaneko (leap communications) <kali@leap.se>2019-09-05 01:14:06 +0200
committerKali Kaneko (leap communications) <kali@leap.se>2019-09-05 01:18:47 +0200
commit80993915cad062e7b1efe86bfe18faae809d25bb (patch)
tree7b54a34a634b221563ac7d200db6eb4665e460d2 /pkg
parent1259bed3f1d316874fc4eb790fd9ef31bffeab0f (diff)
[bug] parse the result of firewall/isup for osx
Diffstat (limited to 'pkg')
-rw-r--r--pkg/helper/darwin.go3
-rw-r--r--pkg/standalone/launcher.go19
2 files changed, 19 insertions, 3 deletions
diff --git a/pkg/helper/darwin.go b/pkg/helper/darwin.go
index f291322..0cee714 100644
--- a/pkg/helper/darwin.go
+++ b/pkg/helper/darwin.go
@@ -27,7 +27,6 @@ To inspect the rules in the firewall manually, use the bitmask anchor:
package helper
import (
- "bytes"
"errors"
"fmt"
"log"
@@ -124,7 +123,7 @@ func firewallIsUp() bool {
log.Printf(string(out))
return false
}
- return bytes.Contains(out, []byte("block out proto udp to any port 53"))
+ return strings.Contains(string(out), "block drop out proto udp from any to any port = 53")
}
func enablePf() {
diff --git a/pkg/standalone/launcher.go b/pkg/standalone/launcher.go
index 36d7ab0..ed9ea5d 100644
--- a/pkg/standalone/launcher.go
+++ b/pkg/standalone/launcher.go
@@ -23,6 +23,7 @@ import (
"io"
"io/ioutil"
"net/http"
+ "strconv"
"0xacab.org/leap/bitmask-vpn/pkg/standalone/bonafide"
)
@@ -75,13 +76,29 @@ func (l *launcher) firewallStop() error {
}
func (l *launcher) firewallIsUp() bool {
+ var isup bool = false
res, err := http.Post(helperAddr+"/firewall/isup", "", nil)
if err != nil {
return false
}
defer res.Body.Close()
- return res.StatusCode == http.StatusOK
+ if res.StatusCode != http.StatusOK {
+ fmt.Printf("Got an error status code for firewall/isup: %v\n", res.StatusCode)
+ isup = false
+ } else {
+ upStr, err := ioutil.ReadAll(res.Body)
+ if err != nil {
+ fmt.Errorf("Error getting body for firewall/isup: %q", err)
+ return false
+ }
+ isup, err = strconv.ParseBool(string(upStr))
+ if err != nil {
+ fmt.Errorf("Error parsing body for firewall/isup: %q", err)
+ return false
+ }
+ }
+ return isup
}
func (l *launcher) send(path string, body []byte) error {