From 24c84dbe806084552d7bb14b9f1d00514a048b9d Mon Sep 17 00:00:00 2001 From: Ken Williams Date: Tue, 15 Apr 2014 02:23:11 +0000 Subject: [PATCH] zebra: Change the mechanism for comparing route ID's. The current format uses subtraction of two ints. Unfortunately, the subtraction method does not work for all combinations of numbers. For example, the with numbers represented by 10.x.x.x and 192.x.x.x, 10.x.x.x - 192.x.x.x will yield a very large positive number indicating that 10.x.x.x is larger. Signed-off-by: Ken Williams Acked-by: Feng Lu Signed-off-by: David Lamparter --- zebra/router-id.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/zebra/router-id.c b/zebra/router-id.c index 3d6b511c53..b738027ec4 100644 --- a/zebra/router-id.c +++ b/zebra/router-id.c @@ -230,10 +230,8 @@ router_id_cmp (void *a, void *b) { const struct connected *ifa = (const struct connected *)a; const struct connected *ifb = (const struct connected *)b; - unsigned int A = ntohl(ifa->address->u.prefix4.s_addr); - unsigned int B = ntohl(ifb->address->u.prefix4.s_addr); - return (int) (A - B); + return IPV4_ADDR_CMP(&ifa->address->u.prefix4.s_addr,&ifb->address->u.prefix4.s_addr); } void -- 2.39.5