T( trace(T_TUNNEL, "peer: attached interface %s to peer `%s'",
p->ifname, p_name(p)); )
p_setkatimer(p);
+ iv_addreason();
if (kx_setup(&p->kx, p, &p->ks, p->spec.f & PSF_KXMASK))
goto tidy_4;
a_notify("ADD",
if (spec->t_ka) sel_rmtimer(&p->tka);
xfree(p->ifname);
p->t->ops->destroy(p->t);
+ iv_rmreason();
tidy_3:
if (fd >= 0) close(fd);
tidy_2:
}
sym_remove(&byname, p->byname);
am_remove(&byaddr, p->byaddr);
+ iv_rmreason();
DESTROY(p);
}
+/* --- @p_destroyall@ --- *
+ *
+ * Arguments: ---
+ *
+ * Returns: ---
+ *
+ * Use: Destroys all of the peers, saying goodbye.
+ */
+
+void p_destroyall(void) { FOREACH_PEER(p, { p_destroy(p, 1); }); }
+
/* --- @p_mkiter@ --- *
*
* Arguments: @peer_iter *i@ = pointer to an iterator