}
/* lookup oi for specified prefix/ifp */
-static struct ospf_interface *
+struct ospf_interface *
ospf_if_table_lookup (struct interface *ifp, struct prefix *prefix)
{
struct prefix p;
struct in_addr);
extern struct ospf_interface *ospf_if_lookup_by_prefix (struct ospf *,
struct prefix_ipv4 *);
+extern struct ospf_interface *ospf_if_table_lookup (struct interface *,
+ struct prefix *);
extern struct ospf_interface *ospf_if_addr_local (struct in_addr);
extern struct ospf_interface *ospf_if_lookup_recv_if (struct ospf *,
struct in_addr);
then create socket and join multicast group. */
for (ALL_LIST_ELEMENTS_RO (ifp->connected, cnode, co))
{
- struct prefix *addr;
-
+
if (CHECK_FLAG(co->flags,ZEBRA_IFA_SECONDARY))
continue;
- addr = CONNECTED_ID(co);
-
if (p->family == co->address->family
- && ! ospf_if_is_configured (area->ospf, &(addr->u.prefix4))
+ && ! ospf_if_table_lookup(ifp, co->address)
&& ospf_network_match_iface(co,p))
{
struct ospf_interface *oi;