ds_nbr
struct ds_nbr *srt_find_ds(struct rt_node *, u_int32_t);
LIST_HEAD(, ds_nbr) ds_list;
LIST_ENTRY(ds_nbr) entry;
struct ds_nbr *ds_nbr;
while ((ds_nbr = LIST_FIRST(&r->ds_list)) != NULL) {
LIST_REMOVE(ds_nbr, entry);
free(ds_nbr);
struct ds_nbr *ds_nbr;
if ((ds_nbr = srt_find_ds(rn, nbr_report)))
srt_delete_ds(rn, ds_nbr, iface);
if ((ds_nbr = srt_find_ds(rn, nbr_report)))
srt_delete_ds(rn, ds_nbr, iface);
struct ds_nbr *ds_nbr;
if ((ds_nbr = malloc(sizeof(struct ds_nbr))) == NULL)
ds_nbr->addr.s_addr = nbr_report;
LIST_INSERT_HEAD(&rn->ds_list, ds_nbr, entry);
struct ds_nbr *
struct ds_nbr *ds_nbr;
LIST_FOREACH(ds_nbr, &rn->ds_list, entry)
if (ds_nbr->addr.s_addr == nbr_report)
return (ds_nbr);
srt_delete_ds(struct rt_node *rn, struct ds_nbr *ds_nbr, struct iface *iface)
LIST_REMOVE(ds_nbr, entry);
free(ds_nbr);
void srt_delete_ds(struct rt_node *, struct ds_nbr *,
struct ds_nbr *ds;