diff options
-rw-r--r-- | ospfd/ChangeLog | 7 | ||||
-rw-r--r-- | ospfd/ospf_zebra.c | 22 |
2 files changed, 13 insertions, 16 deletions
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog index 8a215e6b..d2b979aa 100644 --- a/ospfd/ChangeLog +++ b/ospfd/ChangeLog @@ -1,3 +1,10 @@ +2006-10-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu> + + * ospf_zebra.c: (ospf_redistribute_default_set) Fix bug where + a new value for ospf->default_originate was being ignored + if a previous 'default-information originate' command + had already been processed. + 2006-10-22 Yar Tikhiy <yar@comp.chem.msu.su> * (general) Add support for passive-interface default (with diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c index 5a722e05..aaee31e1 100644 --- a/ospfd/ospf_zebra.c +++ b/ospfd/ospf_zebra.c @@ -576,21 +576,15 @@ int ospf_redistribute_default_set (struct ospf *ospf, int originate, int mtype, int mvalue) { - int force = 0; + ospf->default_originate = originate; + ospf->dmetric[DEFAULT_ROUTE].type = mtype; + ospf->dmetric[DEFAULT_ROUTE].value = mvalue; if (ospf_is_type_redistributed (DEFAULT_ROUTE)) { - if (mtype != ospf->dmetric[DEFAULT_ROUTE].type) - { - ospf->dmetric[DEFAULT_ROUTE].type = mtype; - force = 1; - } - if (mvalue != ospf->dmetric[DEFAULT_ROUTE].value) - { - force = 1; - ospf->dmetric[DEFAULT_ROUTE].value = mvalue; - } - + /* if ospf->default_originate changes value, is calling + ospf_external_lsa_refresh_default sufficient to implement + the change? */ ospf_external_lsa_refresh_default (ospf); if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE)) @@ -601,10 +595,6 @@ ospf_redistribute_default_set (struct ospf *ospf, int originate, return CMD_SUCCESS; } - ospf->default_originate = originate; - ospf->dmetric[DEFAULT_ROUTE].type = mtype; - ospf->dmetric[DEFAULT_ROUTE].value = mvalue; - zclient_redistribute_default (ZEBRA_REDISTRIBUTE_DEFAULT_ADD, zclient); if (IS_DEBUG_OSPF (zebra, ZEBRA_REDISTRIBUTE)) |