147 static int deliver_message(
DELIVER_REQUEST *request,
const char *def_dsn,
149 const char *,
DSN *))
151 const char *myname =
"deliver_message";
188 #define BOUNCE_FLAGS(request) DEL_REQ_TRACE_FLAGS(request->flags)
192 for (nrcpt = 0; nrcpt < request->
rcpt_list.
len; nrcpt++) {
195 &request->
msg_stats, rcpt,
"none", &dsn);
212 static void error_service(
VSTREAM *client_stream,
char *service,
char **argv)
221 msg_fatal(
"unexpected command-line argument: %s", argv[0]);
235 status = deliver_message(request,
"4.0.0",
defer_append);
237 msg_fatal(
"bad error service name: %s", service);
244 static void pre_init(
char *unused_name,
char **unused_argv)
253 int main(
int argc,
char **argv)
DSN_SPLIT * dsn_split(DSN_SPLIT *dp, const char *def_dsn, const char *text)
#define MAIL_SERVICE_ERROR
#define DSN_SIMPLE(dsn, _status, _reason)
void deliver_completed(VSTREAM *stream, long offset)
#define DSN_STATUS(dsn_buf)
int bounce_append(int flags, const char *id, MSG_STATS *stats, RECIPIENT *rcpt, const char *relay, DSN *dsn)
#define BOUNCE_FLAGS(request)
int vstream_fclose(VSTREAM *stream)
VSTREAM * mail_queue_open(const char *queue_name, const char *queue_id, int flags, mode_t mode)
void msg_warn(const char *fmt,...)
#define MAIL_VERSION_STAMP_ALLOCATE
NORETURN msg_fatal(const char *fmt,...)
#define MAIL_SERVICE_RETRY
MAIL_VERSION_STAMP_DECLARE
int deliver_request_done(VSTREAM *stream, DELIVER_REQUEST *request, int status)
int main(int argc, char **argv)
NORETURN single_server_main(int, char **, SINGLE_SERVER_FN,...)
int defer_append(int flags, const char *id, MSG_STATS *stats, RECIPIENT *rcpt, const char *relay, DSN *dsn)
DELIVER_REQUEST * deliver_request_read(VSTREAM *stream)
#define CA_MAIL_SERVER_PRE_INIT(v)
void msg_info(const char *fmt,...)