base64_encode(&b64, p, n, d);
base64_encode(&b64, 0, 0, d);
while (d->len && d->buf[d->len - 1] == '=') d->len--;
+ } else if (strcmp(fmt, "?TOKENS") == 0) {
+ const char *const *av = va_arg(ap, const char *const *);
+ while (*av) quotify(d, *av++);
} else if (strcmp(fmt, "?PEER") == 0)
quotify(d, p_name(va_arg(ap, peer *)));
else if (strcmp(fmt, "?ERRNO") == 0) {
dstr_destroy(&d);
}
-#if 0 /*unused*/
static void a_alert(unsigned f_and, unsigned f_eq, const char *tag,
const char *fmt, ...)
{
a_valert(f_and, f_eq, tag, fmt, ap);
va_end(ap);
}
-#endif
/* --- @a_warn@ --- *
*
}
static void alertcmd(admin *a, unsigned f_and, unsigned f_eq,
- const char *tag, unsigned ac, char *av[])
-{
- dstr d = DSTR_INIT;
- unsigned i;
-
- dstr_puts(&d, "USER");
- for (i = 0; i < ac; i++)
- quotify(&d, av[i]);
- dstr_putz(&d);
- a_rawalert(f_and, f_eq, tag, d.buf, d.len);
- dstr_destroy(&d);
- a_ok(a);
-}
-
+ const char *status, char *av[])
+ { a_alert(f_and, f_eq, status, "USER", "?TOKENS", av, A_END); a_ok(a); }
static void acmd_notify(admin *a, unsigned ac, char *av[])
- { alertcmd(a, AF_NOTE, AF_NOTE, "NOTE", ac, av); }
+ { alertcmd(a, AF_NOTE, AF_NOTE, "NOTE", av); }
static void acmd_warn(admin *a, unsigned ac, char *av[])
- { alertcmd(a, AF_WARN, AF_WARN, "WARN", ac, av); }
+ { alertcmd(a, AF_WARN, AF_WARN, "WARN", av); }
static void acmd_port(admin *a, unsigned ac, char *av[])
{