From 1ec925fd407faaddf05c012497732c01b2c04316 Mon Sep 17 00:00:00 2001 From: evilsocket Date: Sun, 11 Feb 2018 01:04:10 +0100 Subject: [PATCH] fix: fixed win32 fw rule according to stack overflow (still doesn't work, ref #45) --- firewall/firewall_windows.go | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/firewall/firewall_windows.go b/firewall/firewall_windows.go index 77becbb6..67a489bf 100644 --- a/firewall/firewall_windows.go +++ b/firewall/firewall_windows.go @@ -53,26 +53,18 @@ func (f WindowsFirewall) EnableForwarding(enabled bool) error { } func (f WindowsFirewall) generateRule(r *Redirection, enabled bool) []string { - return []string{ + // https://stackoverflow.com/questions/24646165/netsh-port-forwarding-from-local-port-to-local-port-not-working + rule := []string{ fmt.Sprintf("listenport=%d", r.SrcPort), - fmt.Sprintf("connectport=%d", r.DstPort), - fmt.Sprintf("connectaddress=%s", r.DstAddress), - fmt.Sprintf("protocol=%s", r.Protocol), } - /* - rule := []string{ - "listenaddress=0.0.0.0", - fmt.Sprintf("listenport=%d", r.SrcPort), - } - if enabled == true { - rule = append(rule, fmt.Sprintf("protocol=%s", r.Protocol)) - rule = append(rule, fmt.Sprintf("connectport=%d", r.DstPort)) - rule = append(rule, fmt.Sprintf("connectaddress=%s", r.DstAddress)) - } + if enabled == true { + rule = append(rule, fmt.Sprintf("connectport=%d", r.DstPort)) + rule = append(rule, fmt.Sprintf("connectaddress=%s", r.DstAddress)) + rule = append(rule, fmt.Sprintf("protocol=%s", r.Protocol)) + } - return rule - */ + return rule } func (f *WindowsFirewall) AllowPort(port int, address string, proto string, allow bool) error {