From: Hans Dedecker Date: Wed, 9 Sep 2015 13:45:51 +0000 (+0200) Subject: interface-ip: Don't create ip network rule if address mask is equal to full mask X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=commitdiff_plain;h=f566d7a2cdd34dba57c1052284764f5d17229b81;hp=75cbc687b51ea986c2d2a33e826aedd430d950be interface-ip: Don't create ip network rule if address mask is equal to full mask Prevents the creation of identical address and network IP rules Signed-off-by: Hans Dedecker --- diff --git a/interface-ip.c b/interface-ip.c index 43b63c7..d5f6aff 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -513,8 +513,10 @@ interface_update_proto_addr(struct vlist_tree *tree, if (table) { set_ip_source_policy(false, v6, IPRULE_PRIORITY_ADDR, &a_old->addr, (v6) ? 128 : 32, table, NULL, NULL); - set_ip_source_policy(false, v6, IPRULE_PRIORITY_NW, &a_old->addr, - a_old->mask, table, NULL, NULL); + + if (a_old->mask != ((v6) ? 128 : 32)) + set_ip_source_policy(false, v6, IPRULE_PRIORITY_NW, &a_old->addr, + a_old->mask, table, NULL, NULL); } if (!(a_old->flags & DEVADDR_EXTERNAL)) { @@ -546,8 +548,10 @@ interface_update_proto_addr(struct vlist_tree *tree, if (table) { set_ip_source_policy(true, v6, IPRULE_PRIORITY_ADDR, &a_new->addr, (v6) ? 128 : 32, table, NULL, NULL); - set_ip_source_policy(true, v6, IPRULE_PRIORITY_NW, &a_new->addr, - a_new->mask, table, NULL, NULL); + + if (a_new->mask != ((v6) ? 128 : 32)) + set_ip_source_policy(true, v6, IPRULE_PRIORITY_NW, &a_new->addr, + a_new->mask, table, NULL, NULL); } } }