2004-02-17 Paul Jakma <paul@dishone.st>

* ospf_zebra.c: (ospf_interface_delete) Do not delete the interface
          params, nor the interface structure, if an interface delete
          message is received from zebra.
        * ospf_interface.c: (ospf_if_delete_hook) Delete the interface
          params and interface, ie that which was previously removed in
          (ospf_interface_delete) above.
This commit is contained in:
paul 2004-02-17 20:07:30 +00:00
parent 6ad23f05e3
commit 940b01aa6a
3 changed files with 16 additions and 6 deletions

View File

@ -1,3 +1,12 @@
2004-02-17 Paul Jakma <paul@dishone.st>
* ospf_zebra.c: (ospf_interface_delete) Do not delete the interface
params, nor the interface structure, if an interface delete
message is received from zebra.
* ospf_interface.c: (ospf_if_delete_hook) Delete the interface
params and interface, ie that which was previously removed in
(ospf_interface_delete) above.
2004-02-11 Hasso Tepper <hasso@estpak.ee> 2004-02-11 Hasso Tepper <hasso@estpak.ee>
* ospf_interface.c, ospf_zebra.c: Don't attempt to read path->oi->ifp * ospf_interface.c, ospf_zebra.c: Don't attempt to read path->oi->ifp
if oi doesn't exist any more. if oi doesn't exist any more.

View File

@ -677,11 +677,18 @@ int
ospf_if_delete_hook (struct interface *ifp) ospf_if_delete_hook (struct interface *ifp)
{ {
int rc = 0; int rc = 0;
struct route_node *rn;
#ifdef HAVE_OPAQUE_LSA #ifdef HAVE_OPAQUE_LSA
rc = ospf_opaque_del_if (ifp); rc = ospf_opaque_del_if (ifp);
#endif /* HAVE_OPAQUE_LSA */ #endif /* HAVE_OPAQUE_LSA */
route_table_finish (IF_OIFS (ifp)); route_table_finish (IF_OIFS (ifp));
for (rn = route_top (IF_OIFS_PARAMS (ifp)); rn; rn = route_next (rn))
if (rn->info)
ospf_del_if_params (rn->info);
route_table_finish (IF_OIFS_PARAMS (ifp)); route_table_finish (IF_OIFS_PARAMS (ifp));
ospf_del_if_params ((struct ospf_if_params *) IF_DEF_PARAMS (ifp)); ospf_del_if_params ((struct ospf_if_params *) IF_DEF_PARAMS (ifp));
XFREE (MTYPE_OSPF_IF_INFO, ifp->info); XFREE (MTYPE_OSPF_IF_INFO, ifp->info);
ifp->info = NULL; ifp->info = NULL;

View File

@ -125,12 +125,6 @@ ospf_interface_delete (int command, struct zclient *zclient,
if (rn->info) if (rn->info)
ospf_if_free ((struct ospf_interface *) rn->info); ospf_if_free ((struct ospf_interface *) rn->info);
for (rn = route_top (IF_OIFS_PARAMS (ifp)); rn; rn = route_next (rn))
if (rn->info)
ospf_del_if_params (rn->info);
if_delete (ifp);
return 0; return 0;
} }