X-Git-Url: http://git.archive.openwrt.org/?p=project%2Ffirewall3.git;a=blobdiff_plain;f=redirects.c;h=5b8d7a9266a018c477361962a3c99869dcf6262d;hp=50ed44d88d5a82d624dafcc4145c37c4db3c4f0e;hb=18a503d0125aebc3a8d62dad1c02e6bb1da92eb6;hpb=980b7859bbd1db1e5e46422fccccbce38f9809ab 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