+static void acmd_stats(admin *a, unsigned ac, char *av[])
+{
+ peer *p;
+ stats *st;
+
+ if ((p = p_find(av[0])) == 0)
+ a_write(a, "FAIL peer `%s' not found\n", av[0]);
+ else {
+ st = p_stats(p);
+ a_write(a, "INFO start-time=%s\n", timestr(st->t_start));
+ a_write(a, "INFO last-packet-time=%s\n", timestr(st->t_last));
+ a_write(a, "INFO packets-in=%lu bytes-in=%lu\n", st->n_in, st->sz_in);
+ a_write(a, "INFO packets-out=%lu bytes-out=%lu\n",
+ st->n_out, st->sz_out);
+ a_write(a, "INFO keyexch-packets-in=%lu keyexch-bytes-in=%lu\n",
+ st->n_kxin, st->sz_kxin);
+ a_write(a, "INFO keyexch-packets-out=%lu keyexch-bytes-out=%lu\n",
+ st->n_kxout, st->sz_kxout);
+ a_write(a, "INFO ip-packets-in=%lu ip-bytes-in=%lu\n",
+ st->n_ipin, st->sz_ipin);
+ a_write(a, "INFO ip-packets-out=%lu ip-bytes-out=%lu\n",
+ st->n_ipout, st->sz_ipout);
+ a_write(a, "INFO rejected-packets=%lu\n", st->n_reject);
+ a_write(a, "OK\n");
+ }
+}
+