No need to install policy routes if the prefix address cannot be installed; 
clean up of the policy routes
and the prefix address only needs to happen when the prefix assignment was 
active.

Signed-off-by: Hans Dedecker <dedec...@gmail.com>
---
 interface-ip.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/interface-ip.c b/interface-ip.c
index d5a3832..fc48941 100644
--- a/interface-ip.c
+++ b/interface-ip.c
@@ -660,8 +660,8 @@ interface_set_prefix_address(struct 
device_prefix_assignment *assignment,
                }
 
                assignment->enabled = false;
-       } else if (add && (iface->state == IFS_UP || iface->state == 
IFS_SETUP)) {
-               system_add_address(l3_downlink, &addr);
+       } else if (add && (iface->state == IFS_UP || iface->state == IFS_SETUP) 
&&
+                       !system_add_address(l3_downlink, &addr)) {
                if (prefix->iface && !assignment->enabled) {
                        set_ip_source_policy(true, true, 
IPRULE_PRIORITY_REJECT, &addr.addr,
                                        addr.mask, 0, iface, "unreachable");
-- 
1.7.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to