summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ospfd/ChangeLog7
-rw-r--r--ospfd/ospf_lsa.c8
-rw-r--r--ospfd/ospf_zebra.c3
-rw-r--r--ospfd/ospfd.c3
4 files changed, 11 insertions, 10 deletions
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index 480e54e3..dabef49e 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -11,6 +11,13 @@
* ospf_abr.c: (ospf_area_range_cost_set) Shouldn't create a new
range, should just lookup to see if one exists, the new range
is just leaked. Fixes CID #46.
+ * ospf_lsa.c: (ospf_default_originate_timer) Let the thread
+ take (struct ospf *) as thread argument, rather than (struct
+ ospf *)->default_originate, thus avoiding having to call
+ ospf_lookup.
+ * ospf_zebra.c: (ospf_redistribute_default_set) change setup
+ of ospf_default_originate_timer thread to match.
+ * ospfd.c: (ospf_router_id_update) ditto.
2006-04-24 Paul Jakma <paul.jakma@sun.com>
diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c
index faae4376..9a887459 100644
--- a/ospfd/ospf_lsa.c
+++ b/ospfd/ospf_lsa.c
@@ -2243,22 +2243,18 @@ ospf_default_external_info (struct ospf *ospf)
int
ospf_default_originate_timer (struct thread *thread)
{
- int *origin;
struct prefix_ipv4 p;
struct in_addr nexthop;
struct external_info *ei;
struct ospf *ospf;
- ospf = ospf_lookup ();
-
- /* Get originate flags. */
- origin = THREAD_ARG (thread);
+ ospf = THREAD_ARG (thread);
p.family = AF_INET;
p.prefix.s_addr = 0;
p.prefixlen = 0;
- if (*origin == DEFAULT_ORIGINATE_ALWAYS)
+ if (ospf->default_originate == DEFAULT_ORIGINATE_ALWAYS)
{
/* If there is no default route via redistribute,
then originate AS-external-LSA with nexthop 0 (self). */
diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c
index 494f63ce..11c4d99b 100644
--- a/ospfd/ospf_zebra.c
+++ b/ospfd/ospf_zebra.c
@@ -615,8 +615,7 @@ ospf_redistribute_default_set (struct ospf *ospf, int originate,
if (ospf->router_id.s_addr == 0)
ospf->external_origin |= (1 << DEFAULT_ROUTE);
else
- thread_add_timer (master, ospf_default_originate_timer,
- &ospf->default_originate, 1);
+ thread_add_timer (master, ospf_default_originate_timer, ospf, 1);
ospf_asbr_status_update (ospf, ++ospf->redistribute);
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index 680a5006..79c4543f 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -111,8 +111,7 @@ ospf_router_id_update (struct ospf *ospf)
ospf, type);
/* Originate Deafult. */
if (ospf->external_origin & (1 << ZEBRA_ROUTE_MAX))
- thread_add_event (master, ospf_default_originate_timer,
- &ospf->default_originate, 0);
+ thread_add_event (master, ospf_default_originate_timer, ospf, 0);
ospf->external_origin = 0;
}