/* 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); }
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); } }