87 const char *myname =
"deliver_command";
119 dsb_simple(why,
"2.0.0",
"delivers to command: %s", command);
133 msg_panic(
"privileged default group id");
173 #define EXPORT_REQUEST(name, value) \
174 if ((value)[0]) argv_add(env, (name), (value), ARGV_END);
189 for (cpp = env->
argv; *cpp; cpp += 2)
204 dsb_simple(why,
"4.3.5",
"mail system configuration error");
205 msg_warn(
"bad parameter value syntax for %s: %s",
221 STR(exec_dir) : (
char *) 0),
231 switch (cmd_status) {
233 dsb_simple(why,
"2.0.0",
"delivered to command: %s", command);
246 msg_panic(
"%s: bad status %d", myname, cmd_status);
250 return (deliver_status);
#define CA_PIPE_CMD_DELIVERED(v)
#define CA_PIPE_CMD_CWD(v)
ARGV * argv_free(ARGV *argvp)
NORETURN msg_panic(const char *fmt,...)
#define EXPORT_REQUEST(name, value)
char * var_exec_directory
int deliver_command(LOCAL_STATE state, USER_ATTR usr_attr, const char *command)
#define MAIL_COPY_RETURN_PATH
#define DEL_REQ_TRACE_ONLY(f)
void argv_add(ARGV *argvp,...)
DELIVER_REQUEST * request
#define CA_PIPE_CMD_UID(v)
ARGV * argv_alloc(ssize_t len)
#define PIPE_STAT_CORRUPT
#define CA_PIPE_CMD_COPY_FLAGS(v)
DELIVER_REQUEST * request
char * var_cmd_exp_filter
#define BOUNCE_FLAGS(request)
#define VAR_EXPORT_ENVIRON
int pipe_command(VSTREAM *src, DSN_BUF *why,...)
char * var_local_cmd_shell
ARGV * mail_parm_split(const char *name, const char *value)
int been_here(BH_TABLE *dup_filter, const char *fmt,...)
#define CA_PIPE_CMD_GID(v)
void msg_warn(const char *fmt,...)
VSTRING * vstring_alloc(ssize_t len)
#define CA_PIPE_CMD_TIME_LIMIT(v)
DSN_BUF * dsb_simple(DSN_BUF *dsb, const char *status, const char *format,...)
#define MAIL_COPY_DELIVERED
NORETURN msg_fatal(const char *fmt,...)
off_t vstream_fseek(VSTREAM *stream, off_t offset, int whence)
int bounce_workaround(LOCAL_STATE state)
#define CA_PIPE_CMD_COMMAND(v)
#define VAR_EXEC_DIRECTORY
#define CA_PIPE_CMD_ORIG_RCPT(v)
#define CA_PIPE_CMD_SHELL(v)
#define CA_PIPE_CMD_SENDER(v)
int local_expand(VSTRING *, const char *, LOCAL_STATE *, USER_ATTR *, const char *)
VSTRING * vstring_free(VSTRING *vp)
#define CA_PIPE_CMD_ENV(v)
char * var_export_environ
#define MAIL_COPY_ORIG_RCPT
int sent(int flags, const char *id, MSG_STATS *stats, RECIPIENT *recipient, const char *relay, DSN *dsn)
#define MSG_LOG_STATE(m, p)
#define CA_PIPE_CMD_EXPORT(v)
int local_deliver_hdr_mask
char * var_exec_exp_filter
void argv_terminate(ARGV *argvp)