diff options
Diffstat (limited to 'helper')
-rw-r--r-- | helper/helper.go | 33 |
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) |