buf_flip(&bb);
if (ksl_encrypt(&p->ks, MSG_MISC | MISC_EPONG, &bb,
p_txstart(p, MSG_MISC | MISC_EPONG)))
- kx_start(&p->kx);
+ kx_start(&p->kx, 0);
p_txend(p);
}
break;
buf *b, bb;
struct timeval tv;
- assert(!pg->p);
-
switch (type) {
case MISC_PING:
pg->msg = MISC_PONG;
p_pingwrite(pg, &bb);
buf_flip(&bb);
if (ksl_encrypt(&p->ks, MSG_MISC | MISC_EPING, &bb, b))
- kx_start(&p->kx);
+ kx_start(&p->kx, 0);
if (!BOK(b))
return (-1);
p_txend(p);
TIMER;
if (ksl_encrypt(&p->ks, MSG_PACKET, b, bb))
- kx_start(&p->kx);
+ kx_start(&p->kx, 0);
if (BOK(bb) && BLEN(bb)) {
p->st.n_ipout++;
p->st.sz_ipout += BLEN(bb);
}
}
+/* --- @p_keyreload@ --- *
+ *
+ * Arguments: ---
+ *
+ * Returns: ---
+ *
+ * Use: Forces a check of the daemon's keyring files.
+ */
+
+void p_keyreload(void)
+{
+ peer *p;
+
+ if (km_reload()) {
+ for (p = peers; p; p = p->next)
+ kx_newkeys(&p->kx);
+ }
+}
+
/* --- @p_interval@ --- *
*
* Arguments: ---
void p_interval(void)
{
- peer *p, *pp;
- int reload;
+ peer *p;
- reload = km_interval();
- for (p = peers; p; p = pp) {
- pp = p->next;
- if (reload)
- kx_newkeys(&p->kx);
+ p_keyreload();
+ for (p = peers; p; p = p->next)
ksl_prune(&p->ks);
- }
}
/* --- @p_stats@ --- *