void module_failure_msg(REQUEST *request, char const *fmt, ...) { va_list ap; va_start(ap, fmt); vmodule_failure_msg(request, fmt, ap); va_end(ap); }
/** Martial variadic log arguments into a va_list and pass to error logging functions * * This could all be done in a macro, but it turns out some implementations of the * variadic macros do not work at all well if the va_list being written to is further * up the stack (which is required as you still need a function to convert the elipses * into a va_list). * * So, we use this small wrapper function instead, which will hopefully guarantee * consistent behaviour. * * @param type the log category. * @param lvl of debugging this message should be displayed at. * @param request The current request. * @param msg format string. */ void radlog_request_error(log_type_t type, log_debug_t lvl, REQUEST *request, char const *msg, ...) { va_list ap; va_start(ap, msg); if (request->radlog) { request->radlog(type, lvl, request, msg, ap); } vmodule_failure_msg(request, msg, ap); va_end(ap); }