nbr_failed
} else if (nbr_failed != NULL) {
if (ntohl(a->auth_seq) < nbr_failed->auth_seq_num &&
struct nbr *nbr, struct nbr_failed *nbr_failed, u_int32_t *crypt_seq_num)
struct nbr_failed *nbr_failed;
if ((nbr_failed = calloc(1, sizeof(*nbr_failed))) == NULL)
nbr_failed->addr = nbr->addr;
nbr_failed->auth_seq_num = nbr->auth_seq_num;
evtimer_set(&nbr_failed->timeout_timer, nbr_failed_timeout,
nbr_failed);
if (evtimer_add(&nbr_failed->timeout_timer, &tv) == -1)
LIST_INSERT_HEAD(&iface->failed_nbr_list, nbr_failed, entry);
struct nbr_failed *
struct nbr_failed *nbr_failed = NULL;
LIST_FOREACH(nbr_failed, &iface->failed_nbr_list, entry) {
if (nbr_failed->addr.s_addr == src_ip) {
return (nbr_failed);
nbr_failed_delete(struct nbr_failed *nbr_failed)
if (evtimer_pending(&nbr_failed->timeout_timer, NULL))
if (evtimer_del(&nbr_failed->timeout_timer) == -1)
LIST_REMOVE(nbr_failed, entry);
free(nbr_failed);
struct nbr_failed *nbr_failed = arg;
inet_ntoa(nbr_failed->addr));
nbr_failed_delete(nbr_failed);
nbr_failed = nbr_failed_find(iface, src.sin_addr.s_addr);
if (auth_validate(&buf, &len, iface, nbr, nbr_failed,
if (nbr_failed != NULL)
nbr_failed_delete(nbr_failed);
struct nbr_failed *nbr_failed = NULL;
LIST_HEAD(, nbr_failed) failed_nbr_list;
struct nbr_failed *, u_int32_t *);
struct nbr_failed *nbr_failed_find(struct iface *, u_int32_t);
void nbr_failed_delete(struct nbr_failed *);
LIST_ENTRY(nbr_failed) entry;