summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--proto/ospf/ospf.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c
index 1bc8e74..ef06c70 100644
--- a/proto/ospf/ospf.c
+++ b/proto/ospf/ospf.c
@@ -351,7 +351,7 @@ ospf_get_attr(eattr *a, byte *buf)
static int
ospf_patt_compare(struct ospf_iface_patt *a, struct ospf_iface_patt *b)
{
- return ((a->cost==b->cost)&&(a->type==b->type)&&(a->priority==b->priority));
+ return ((a->type==b->type)&&(a->priority==b->priority));
}
static int
@@ -418,6 +418,16 @@ ospf_reconfigure(struct proto *p, struct proto_config *c)
ifa->iface->name,ip1->helloint,ip2->helloint);
}
+ /* COST */
+ if(ip1->cost!=ip2->cost)
+ {
+ ifa->cost=ip2->cost;
+ OSPF_TRACE(D_EVENTS,
+ "Changing cost interface %s from %d to %d",
+ ifa->iface->name,ip1->cost,ip2->cost);
+ schedule_rt_lsa(ifa->oa);
+ }
+
/* AUTHETICATION */
if(ip1->autype!=ip2->autype)
{