int ospf_opaque_type9_lsa_init(struct ospf_interface *oi)
{
if (oi->opaque_lsa_self != NULL)
- list_delete_and_null(&oi->opaque_lsa_self);
+ list_delete(&oi->opaque_lsa_self);
oi->opaque_lsa_self = list_new();
oi->opaque_lsa_self->del = free_opaque_info_per_type;
{
OSPF_TIMER_OFF(oi->t_opaque_lsa_self);
if (oi->opaque_lsa_self != NULL)
- list_delete_and_null(&oi->opaque_lsa_self);
+ list_delete(&oi->opaque_lsa_self);
oi->opaque_lsa_self = NULL;
return;
}
int ospf_opaque_type10_lsa_init(struct ospf_area *area)
{
if (area->opaque_lsa_self != NULL)
- list_delete_and_null(&area->opaque_lsa_self);
+ list_delete(&area->opaque_lsa_self);
area->opaque_lsa_self = list_new();
area->opaque_lsa_self->del = free_opaque_info_per_type;
OSPF_TIMER_OFF(area->t_opaque_lsa_self);
if (area->opaque_lsa_self != NULL)
- list_delete_and_null(&area->opaque_lsa_self);
+ list_delete(&area->opaque_lsa_self);
return;
}
int ospf_opaque_type11_lsa_init(struct ospf *top)
{
if (top->opaque_lsa_self != NULL)
- list_delete_and_null(&top->opaque_lsa_self);
+ list_delete(&top->opaque_lsa_self);
top->opaque_lsa_self = list_new();
top->opaque_lsa_self->del = free_opaque_info_per_type;
OSPF_TIMER_OFF(top->t_opaque_lsa_self);
if (top->opaque_lsa_self != NULL)
- list_delete_and_null(&top->opaque_lsa_self);
+ list_delete(&top->opaque_lsa_self);
return;
}
struct list *funclist;
funclist = ospf_opaque_wildcard_funclist;
- list_delete_and_null(&funclist);
+ list_delete(&funclist);
funclist = ospf_opaque_type9_funclist;
- list_delete_and_null(&funclist);
+ list_delete(&funclist);
funclist = ospf_opaque_type10_funclist;
- list_delete_and_null(&funclist);
+ list_delete(&funclist);
funclist = ospf_opaque_type11_funclist;
- list_delete_and_null(&funclist);
+ list_delete(&funclist);
return;
}
/* Cleanup internal control information, if it
* still remains. */
if (functab->oipt != NULL) {
+ free_opaque_info_owner(functab->oipt);
free_opaque_info_per_type(
functab->oipt);
- free_opaque_info_owner(functab->oipt);
}
/* Dequeue listnode entry from the list. */
listnode_delete(funclist, functab);
- /* Avoid misjudgement in the next lookup. */
- if (listcount(funclist) == 0)
- funclist->head = funclist->tail = NULL;
-
XFREE(MTYPE_OSPF_OPAQUE_FUNCTAB, functab);
break;
}
/* Collection of callback functions for this opaque-type. */
struct ospf_opaque_functab *functab;
- /* List of Opaque-LSA control informations per opaque-id. */
+ /* List of Opaque-LSA control information per opaque-id. */
struct list *id_list;
};
case OSPF_OPAQUE_AS_LSA:
top = ospf_lookup_by_vrf_id(new->vrf_id);
if (new->area != NULL && (top = new->area->ospf) == NULL) {
- free_opaque_info_per_type((void *)oipt);
free_opaque_info_owner(oipt);
+ free_opaque_info_per_type(oipt);
oipt = NULL;
goto out; /* This case may not exist. */
}
EC_OSPF_LSA_UNEXPECTED,
"register_opaque_info_per_type: Unexpected LSA-type(%u)",
new->data->type);
- free_opaque_info_per_type((void *)oipt);
free_opaque_info_owner(oipt);
+ free_opaque_info_per_type(oipt);
oipt = NULL;
goto out; /* This case may not exist. */
}
}
OSPF_TIMER_OFF(oipt->t_opaque_lsa_self);
- list_delete_and_null(&oipt->id_list);
+ list_delete(&oipt->id_list);
XFREE(MTYPE_OPAQUE_INFO_PER_TYPE, oipt);
return;
}
/* Dequeue listnode entry from the list. */
listnode_delete(oipt->id_list, oipi);
- /* Avoid misjudgement in the next lookup. */
- if (listcount(oipt->id_list) == 0)
- oipt->id_list->head = oipt->id_list->tail = NULL;
-
/* Disassociate internal control information with the given lsa. */
free_opaque_info_per_id((void *)oipi);