diff mbox

[OpenWrt-Devel,netifd,5/6] interface-ip: Don't create ip network rule if address mask is equal to full mask

Message ID 1441806352-18030-5-git-send-email-dedeckeh@gmail.com
State Accepted
Headers show

Commit Message

Hans Dedecker Sept. 9, 2015, 1:45 p.m. UTC
Prevents the creation of identical address and network IP rules

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
---
 interface-ip.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
diff mbox

Patch

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);
 				}
 			}
 		}