summaryrefslogtreecommitdiffstats
path: root/ospfd/ospfd.c
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@diac24.net>2010-02-04 02:23:39 +0100
committerDavid Lamparter <equinox@diac24.net>2010-02-04 02:23:39 +0100
commit8f8f4dec2e41b217a0651a2f33112447ae04f73b (patch)
treef574a43c81c7cca6f00226abafa5422722ed7c61 /ospfd/ospfd.c
parent58bfa5562817306f14cd7d41953a2740056e1afc (diff)
parent43f93a5b3a491052b8206e6d94dd3c986aa9f45b (diff)
downloadquagga-8f8f4dec2e41b217a0651a2f33112447ae04f73b.tar.bz2
quagga-8f8f4dec2e41b217a0651a2f33112447ae04f73b.tar.xz
Merge branch 'patches/jt_ospf-fixes-20091129' into ospf-merge-3
Diffstat (limited to 'ospfd/ospfd.c')
-rw-r--r--ospfd/ospfd.c20
1 files changed, 4 insertions, 16 deletions
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index b11ee1bb..11d1b9d1 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -1409,8 +1409,6 @@ ospf_nbr_nbma_add (struct ospf_nbr_nbma *nbr_nbma,
struct ospf_interface *oi)
{
struct ospf_neighbor *nbr;
- struct route_node *rn;
- struct prefix p;
if (oi->type != OSPF_IFTYPE_NBMA)
return;
@@ -1418,37 +1416,27 @@ ospf_nbr_nbma_add (struct ospf_nbr_nbma *nbr_nbma,
if (nbr_nbma->nbr != NULL)
return;
- if (IPV4_ADDR_SAME (&oi->nbr_self->address.u.prefix4, &nbr_nbma->addr))
+ if (IPV4_ADDR_SAME (&oi->nbr_self->src, &nbr_nbma->addr))
return;
nbr_nbma->oi = oi;
listnode_add (oi->nbr_nbma, nbr_nbma);
/* Get neighbor information from table. */
- p.family = AF_INET;
- p.prefixlen = IPV4_MAX_BITLEN;
- p.u.prefix4 = nbr_nbma->addr;
-
- rn = route_node_get (oi->nbrs, (struct prefix *)&p);
- if (rn->info)
+ nbr = ospf_nbr_lookup_by_addr (oi->nbrs, &nbr_nbma->addr);
+ if (nbr)
{
- nbr = rn->info;
nbr->nbr_nbma = nbr_nbma;
nbr_nbma->nbr = nbr;
-
- route_unlock_node (rn);
}
else
{
- nbr = rn->info = ospf_nbr_new (oi);
+ nbr = ospf_nbr_new (oi);
nbr->state = NSM_Down;
nbr->src = nbr_nbma->addr;
nbr->nbr_nbma = nbr_nbma;
nbr->priority = nbr_nbma->priority;
- nbr->address = p;
-
nbr_nbma->nbr = nbr;
-
OSPF_NSM_EVENT_EXECUTE (nbr, NSM_Start);
}
}