Commit e550a372 authored by Ondrej Filip's avatar Ondrej Filip
Browse files

Fixes problem with OSPF neighbor router ID change. Thanx to Alexander V. Chernikov

parent c404f4b9
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -101,6 +101,17 @@ ospf_hello_receive(struct ospf_packet *ps_i, struct ospf_iface *ifa,
    return;
  }

#ifdef OSPFv2
  if (n && (n->rid != ntohl(ps_i->routerid)))
  {
    OSPF_TRACE(D_EVENTS,
	"Neighbor %I has changed router id from %R to %R.",
	     n->ip, n->rid, ntohl(ps_i->routerid));
    ospf_neigh_remove(n);
    n = NULL;
  }
#endif

  if (!n)
  {
    if ((ifa->type == OSPF_IT_NBMA) || (ifa->type == OSPF_IT_PTMP))
@@ -132,7 +143,7 @@ ospf_hello_receive(struct ospf_packet *ps_i, struct ospf_iface *ifa,

    n = ospf_neighbor_new(ifa);

    n->rid = ntohl(((struct ospf_packet *) ps)->routerid);
    n->rid = ntohl(ps_i->routerid);
    n->ip = faddr;
    n->dr = ntohl(ps->dr);
    n->bdr = ntohl(ps->bdr);