summaryrefslogtreecommitdiff
path: root/helper/helper.go
diff options
context:
space:
mode:
Diffstat (limited to 'helper/helper.go')
-rw-r--r--helper/helper.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/helper/helper.go b/helper/helper.go
index 1e30f8f..04eafc7 100644
--- a/helper/helper.go
+++ b/helper/helper.go
@@ -22,6 +22,9 @@ import (
"net/http"
"os"
"os/exec"
+ "runtime"
+
+ "github.com/sevlyar/go-daemon"
)
const (
@@ -40,6 +43,36 @@ func main() {
defer logger.Close()
}
+ if runtime.GOOS == "darwin" {
+ daemonize()
+ }
+ serveHTTP()
+
+}
+
+func daemonize() {
+ cntxt := &daemon.Context{
+ PidFileName: "pid",
+ PidFilePerm: 0644,
+ LogFileName: "bitmask-helper.log",
+ LogFilePerm: 0640,
+ WorkDir: "./",
+ Umask: 027,
+ Args: []string{"[bitmask-helper]"},
+ }
+
+ d, err := cntxt.Reborn()
+ if err != nil {
+ log.Fatal("Unable to run: ", err)
+ }
+ if d != nil {
+ return
+ }
+ defer cntxt.Release()
+ log.Print("bitmask-helper daemon started")
+}
+
+func serveHTTP() {
openvpn := openvpnT{nil}
firewall := firewallT{}
http.HandleFunc("/openvpn/start", openvpn.start)