Commit 4c1b4e1a authored by Martin Mareš's avatar Martin Mareš
Browse files

If the user has specified identical preferences for instances of different

protocols, break the tie by comparing addresses, so we keep the ordering
parent aee539f2
......@@ -95,7 +95,14 @@ rte_better(rte *new, rte *old)
if (new->pref < old->pref)
return 0;
if (new->attrs->proto->proto != old->attrs->proto->proto)
bug("Different protocols, but identical preferences => oops"); /* FIXME */
* If the user has configured protocol preferences, so that two different protocols
* have the same preference, try to break the tie by comparing addresses. Not too
* useful, but keeps the ordering of routes unambiguous.
return new->attrs->proto->proto > old->attrs->proto->proto;
if (better = new->attrs->proto->rte_better)
return better(new, old);
return 0;
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment