From: Jo-Philipp Wich Date: Tue, 26 May 2015 12:50:21 +0000 (+0200) Subject: redirects: only emit REDIRECT rules if dest_ip is unset X-Git-Url: http://git.openwrt.org/?p=project%2Ffirewall3.git;a=commitdiff_plain;h=18a503d0125aebc3a8d62dad1c02e6bb1da92eb6 redirects: only emit REDIRECT rules if dest_ip is unset Signed-off-by: Jo-Philipp Wich --- diff --git a/redirects.c b/redirects.c index 50ed44d..5b8d7a9 100644 --- a/redirects.c +++ b/redirects.c @@ -166,45 +166,13 @@ static bool check_local(struct uci_element *e, struct fw3_redirect *redir, struct fw3_state *state) { - struct fw3_zone *zone; - struct fw3_device *net; - struct fw3_address *addr, *tmp; - if (redir->target != FW3_FLAG_DNAT) return false; if (!redir->ip_redir.set) redir->local = true; - if (redir->local) - return true; - - list_for_each_entry(zone, &state->zones, list) - { - list_for_each_entry(net, &zone->networks, list) - { - LIST_HEAD(addrs); - - fw3_ubus_address(&addrs, net->name); - list_for_each_entry_safe(addr, tmp, &addrs, list) - { - if (!redir->local && compare_addr(&redir->ip_redir, addr)) { - warn_elem(e, "refers to a destination address on this router, " - "assuming port redirection"); - - redir->local = true; - } - - list_del(&addr->list); - free(addr); - } - - if (redir->local) - return true; - } - } - - return false; + return redir->local; } void