static void command(VSTREAM *stream, char *fmt,...) { VSTRING *buf; va_list ap; /* * Optionally, log the command before actually sending, so we can see * what the program is trying to do. */ if (msg_verbose) { buf = vstring_alloc(100); va_start(ap, fmt); vstring_vsprintf(buf, fmt, ap); va_end(ap); msg_info("%s", vstring_str(buf)); vstring_free(buf); } va_start(ap, fmt); smtp_vprintf(stream, fmt, ap); va_end(ap); smtp_flush(stream); }
static void hard_err_resp(SINK_STATE *state) { smtp_printf(state->stream, HARD_ERROR_RESP); smtp_flush(state->stream); }
static void soft_err_resp(SINK_STATE *state) { smtp_printf(state->stream, SOFT_ERROR_RESP); smtp_flush(state->stream); }
static void soft_err_resp(SINK_STATE *state) { smtp_printf(state->stream, soft_error_resp); smtp_flush(state->stream); }