1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00
wtf/security/firewall.go
2018-03-31 09:16:40 -07:00

60 lines
1019 B
Go

package security
import (
"io/ioutil"
"os/exec"
"strings"
)
const osxFirewallCmd = "/usr/libexec/ApplicationFirewall/socketfilterfw"
func FirewallState() string {
cmd := exec.Command(osxFirewallCmd, "--getglobalstate")
stdout, err := cmd.StdoutPipe()
if err != nil {
return firewallIcon("err")
}
if err := cmd.Start(); err != nil {
return firewallIcon("err")
}
var str string
if b, err := ioutil.ReadAll(stdout); err == nil {
str += string(b)
}
return firewallIcon(str)
}
func FirewallStealthState() string {
cmd := exec.Command(osxFirewallCmd, "--getstealthmode")
stdout, err := cmd.StdoutPipe()
if err != nil {
return firewallIcon("err")
}
if err := cmd.Start(); err != nil {
return firewallIcon("err")
}
var str string
if b, err := ioutil.ReadAll(stdout); err == nil {
str += string(b)
}
return firewallIcon(str)
}
func firewallIcon(str string) string {
icon := "[red]off[white]"
if strings.Contains(str, "enabled") {
icon = "[green]on[white]"
}
return icon
}