summaryrefslogtreecommitdiff
path: root/ospfd/ospf_lsdb.c
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2013-01-11 21:46:18 +0100
committerDavid Lamparter <equinox@opensourcerouting.org>2013-01-11 21:46:22 +0100
commitb2e5bdbe10c4145f508fcf1486ffe29d5ce516f7 (patch)
treefae70e8c1580d99fee0c2a59d6bef831c4c9465c /ospfd/ospf_lsdb.c
parenta16dcf7c11d80775b07a0fa6f3ac5527190fb486 (diff)
parente0630cb4d61557f956318a088f68f1fc4d261ef3 (diff)
Merge remote-tracking branch 'savannah/sf/ospfd'
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'ospfd/ospf_lsdb.c')
-rw-r--r--ospfd/ospf_lsdb.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/ospfd/ospf_lsdb.c b/ospfd/ospf_lsdb.c
index ea9a3528..aad979a7 100644
--- a/ospfd/ospf_lsdb.c
+++ b/ospfd/ospf_lsdb.c
@@ -72,13 +72,16 @@ ospf_lsdb_cleanup (struct ospf_lsdb *lsdb)
route_table_finish (lsdb->type[i].db);
}
-static void
-lsdb_prefix_set (struct prefix_ls *lp, struct ospf_lsa *lsa)
+void
+ls_prefix_set (struct prefix_ls *lp, struct ospf_lsa *lsa)
{
- lp->family = 0;
- lp->prefixlen = 64;
- lp->id = lsa->data->id;
- lp->adv_router = lsa->data->adv_router;
+ if (lp && lsa && lsa->data)
+ {
+ lp->family = 0;
+ lp->prefixlen = 64;
+ lp->id = lsa->data->id;
+ lp->adv_router = lsa->data->adv_router;
+ }
}
static void
@@ -115,7 +118,7 @@ ospf_lsdb_add (struct ospf_lsdb *lsdb, struct ospf_lsa *lsa)
struct route_node *rn;
table = lsdb->type[lsa->data->type].db;
- lsdb_prefix_set (&lp, lsa);
+ ls_prefix_set (&lp, lsa);
rn = route_node_get (table, (struct prefix *)&lp);
/* nothing to do? */
@@ -167,7 +170,7 @@ ospf_lsdb_delete (struct ospf_lsdb *lsdb, struct ospf_lsa *lsa)
assert (lsa->data->type < OSPF_MAX_LSA);
table = lsdb->type[lsa->data->type].db;
- lsdb_prefix_set (&lp, lsa);
+ ls_prefix_set (&lp, lsa);
if ((rn = route_node_lookup (table, (struct prefix *) &lp)))
{
if (rn->info == lsa)
@@ -218,7 +221,7 @@ ospf_lsdb_lookup (struct ospf_lsdb *lsdb, struct ospf_lsa *lsa)
struct ospf_lsa *find;
table = lsdb->type[lsa->data->type].db;
- lsdb_prefix_set (&lp, lsa);
+ ls_prefix_set (&lp, lsa);
rn = route_node_lookup (table, (struct prefix *) &lp);
if (rn)
{