]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
rip_rte_better() uses the IGP_METRIC_UNKNOWN instead of protocol-specific infinity
authorMaria Matejka <mq@ucw.cz>
Fri, 22 Jul 2022 14:09:37 +0000 (16:09 +0200)
committerMaria Matejka <mq@ucw.cz>
Wed, 3 Aug 2022 13:04:28 +0000 (15:04 +0200)
proto/rip/rip.c

index 6ca7a6b5383a3dd97857e2874bb246e7b18c330b..b0b5b8a16917aaa507d093f3336e1cf1d8f27cdb 100644 (file)
@@ -1101,24 +1101,18 @@ rip_reload_routes(struct channel *C)
   rip_kick_timer(p);
 }
 
-static int
-rip_rte_better(struct rte *new, struct rte *old)
-{
-  ASSERT_DIE(new->src == old->src);
-  struct rip_proto *p = (struct rip_proto *) new->src->proto;
-
-  u32 new_metric = ea_get_int(new->attrs->eattrs, EA_RIP_METRIC, p->infinity);
-  u32 old_metric = ea_get_int(old->attrs->eattrs, EA_RIP_METRIC, p->infinity);
-
-  return new_metric < old_metric;
-}
-
 static u32
 rip_rte_igp_metric(struct rte *rt)
 {
   return ea_get_int(rt->attrs->eattrs, EA_RIP_METRIC, IGP_METRIC_UNKNOWN);
 }
 
+static int
+rip_rte_better(struct rte *new, struct rte *old)
+{
+  return rip_rte_igp_metric(new) < rip_rte_igp_metric(old);
+}
+
 static void
 rip_postconfig(struct proto_config *CF)
 {