From ce3302c359cbdf49e43878e21356c1ea0fe6e081 Mon Sep 17 00:00:00 2001 From: Giuseppe Trotta Date: Tue, 13 Feb 2018 01:19:49 +0100 Subject: [PATCH] Cleaning fw_windows --- firewall/firewall_windows.go | 59 +++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/firewall/firewall_windows.go b/firewall/firewall_windows.go index 7ea99218..5bfcdec0 100644 --- a/firewall/firewall_windows.go +++ b/firewall/firewall_windows.go @@ -21,43 +21,54 @@ func Make(iface *net.Endpoint) FirewallManager { redirections: make(map[string]*Redirection, 0), } - firewall.forwarding = firewall.IsForwardingEnabled() + // firewall.forwarding = firewall.IsForwardingEnabled() return firewall } +// TODO: This should be obsolete now .. Clean func (f WindowsFirewall) IsForwardingEnabled() bool { - if out, err := core.Exec("netsh", []string{"interface", "ipv4", "dump"}); err != nil { - fmt.Printf("%s\n", err) - return false - } else { - return strings.Contains(out, "forwarding=enabled") - } + + fmt.Errorf("Forwarding is dead in Windows .. cleanup") + return false + + //if out, err := core.Exec("netsh", []string{"interface", "ipv4", "dump"}); err != nil { + // fmt.Printf("%s\n", err) + // return false + //} else { + // return strings.Contains(out, "forwarding=enabled") + //} } func (f WindowsFirewall) isSuccess(output string) bool { - if trimmed := core.Trim(output); trimmed == "" || strings.Contains(trimmed, "OK") == true { + if trimmed := core.Trim(output); trimmed == "" || strings.Contains(strings.ToUpper(trimmed), "OK") == true { return true } else { return false } } +// TODO: This should be obsolete now .. Clean func (f WindowsFirewall) EnableForwarding(enabled bool) error { - v := "enabled" - if enabled == false { - v = "disabled" - } - out, err := core.Exec("netsh", []string{"interface", "ipv4", "set", "interface", fmt.Sprintf("%d", f.iface.Index), fmt.Sprintf("forwarding=\"%s\"", v)}) - if err != nil { - return err - } - - if f.isSuccess(out) == false { - return fmt.Errorf("Unexpected netsh output: %s", out) - } + fmt.Errorf("Forwarding is dead in Windows .. cleanup") return nil + + // + //v := "enabled" + //if enabled == false { + // v = "disabled" + //} + //out, err := core.Exec("netsh", []string{"interface", "ipv4", "set", "interface", fmt.Sprintf("%d", f.iface.Index), fmt.Sprintf("forwarding=\"%s\"", v)}) + //if err != nil { + // return err + //} + // + //if f.isSuccess(out) == false { + // return fmt.Errorf("Unexpected netsh output: %s", out) + //} + // + //return nil } func (f WindowsFirewall) generateRule(r *Redirection, enabled bool) []string { @@ -96,7 +107,7 @@ func (f *WindowsFirewall) AllowPort(port int, address string, proto string, allo } if f.isSuccess(out) == false { - return fmt.Errorf("Unexpected netsh output: %s", out) + return fmt.Errorf("Unexpected netsh output in AllowPort: %s", out) } return nil @@ -134,7 +145,7 @@ func (f WindowsFirewall) Restore() { } } - if err := f.EnableForwarding(f.forwarding); err != nil { - fmt.Printf("%s", err) - } + //if err := f.EnableForwarding(f.forwarding); err != nil { + // fmt.Printf("%s", err) + //} }