From 484d41c5194687356b9ecb6c7a6a875652bd65c8 Mon Sep 17 00:00:00 2001 From: evilsocket Date: Thu, 8 Feb 2018 01:20:10 +0100 Subject: [PATCH] new: implementing IsForwardingEnabled for windows firewall --- firewall/firewall_windows.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/firewall/firewall_windows.go b/firewall/firewall_windows.go index cce108ac..c377caf7 100644 --- a/firewall/firewall_windows.go +++ b/firewall/firewall_windows.go @@ -36,8 +36,16 @@ func (f WindowsFirewall) IsForwardingEnabled() bool { } func (f WindowsFirewall) EnableForwarding(enabled bool) error { - fmt.Printf("iface idx=%d\n", f.iface.Index) - return fmt.Errorf("Not implemented") + out, err := core.Exec("netsh", []string{"interface", "ipv4", "set", "interface", fmt.Sprintf("%d", f.iface.Index), fmt.Sprintf("forwarding=\"%s\"", enabled)}) + if err != nil { + return err + } + + if strings.Contains(out, "OK") == false { + return fmt.Errorf("Unexpected netsh output: %s", out) + } + + return nil } func (f *WindowsFirewall) EnableRedirection(r *Redirection, enabled bool) error {