/* added 25-9-94 by Run */
int vexit_client_msg(struct Client *cptr, struct Client *bcptr, struct Client *sptr,
    const char *pattern, va_list vl)
{
  char msgbuf[1024];
  ircd_vsnprintf(0, msgbuf, sizeof(msgbuf), pattern, vl);
  return exit_client(cptr, bcptr, sptr, msgbuf);
}
/**
 * Exit client with formatted message using a variable-length argument list.
 * Thin wrapper around exit_client().
 * @param cptr Connection being processed.
 * @param bcptr Connection being closed.
 * @param sptr Connection who asked to close the victim.
 * @param pattern Format string for message.
 * @return Has a tail call to exit_client().
 */
int exit_client_msg(struct Client *cptr, struct Client *bcptr,
    struct Client *sptr, const char *pattern, ...)
{
  va_list vl;
  char msgbuf[1024];

  va_start(vl, pattern);
  ircd_vsnprintf(0, msgbuf, sizeof(msgbuf), pattern, vl);
  va_end(vl);

  return exit_client(cptr, bcptr, sptr, msgbuf);
}
Esempio n. 3
0
extern void write_log(const char *filename, const char *pattern, ...)
{
    FBFILE *logfile;
    va_list vl;
    static char logbuf[1024];

    logfile = fbopen(filename, "a");

    if (logfile)
    {
        va_start(vl, pattern);
        ircd_vsnprintf(0, logbuf, sizeof(logbuf) - 1, pattern, vl);
        va_end(vl);

        fbputs(logbuf, logfile);
        fbclose(logfile);
    }
}