694 const char *myname =
"local_deliver";
745 for (msg_stat = 0, rcpt = rqst->
rcpt_list.
info; rcpt < rcpt_end; rcpt++) {
754 msg_stat |= rcpt_stat;
768 static void local_service(
VSTREAM *stream,
char *service,
char **argv)
777 msg_fatal(
"unexpected command-line argument: %s", argv[0]);
787 status = local_deliver(request, service);
794 static void local_mask_init(
void)
802 static const NAME_MASK command_mask[] = {
808 static const NAME_MASK deliver_mask[] = {
825 msg_warn(
"%s: deprecated parameter, use \"%s = dotlock\" instead",
830 msg_fatal(
"parameter %s specifies no applicable mailbox locking method",
836 static void pre_accept(
char *unused_name,
char **unused_argv)
841 msg_info(
"table %s has changed -- restarting", table);
848 static void post_init(
char *unused_name,
char **unused_argv)
860 static void pre_init(
char *unused_name,
char **unused_argv)
878 msg_fatal(
"main.cf configuration error: %s is smaller than %s",
894 int main(
int argc,
char **argv)
#define DEF_FROZEN_DELIVERED
int ext_prop_mask(const char *param_name, const char *pattern)
bool var_strict_mbox_owner
#define CA_MAIL_SERVER_BOOL_TABLE(v)
#define DEF_ALLOW_COMMANDS
#define CA_MAIL_SERVER_RAW_TABLE(v)
#define VAR_PROP_EXTENSION
void been_here_free(BH_TABLE *dup_filter)
#define DEF_MAILBOX_LIMIT
#define RESET_OWNER_ATTR(msg_attr, level)
#define VAR_FROZEN_DELIVERED
#define CA_MAIL_SERVER_STR_TABLE(v)
char * var_local_dsn_filter
#define DEL_REQ_FLAG_SUCCESS
#define VAR_DUP_FILTER_LIMIT
#define VAR_MAILBOX_TRANSP
void deliver_completed(VSTREAM *stream, long offset)
#define DEF_FBCK_TRANSP_MAPS
char * var_allow_commands
#define VAR_MAILBOX_COMMAND
#define VAR_MAILBOX_CMD_MAPS
#define VAR_RESET_OWNER_ATTR
#define EXPAND_TYPE_ALIAS
void deliver_attr_free(DELIVER_ATTR *attrp)
void set_file_limit(off_t limit)
DELIVER_REQUEST * request
char * var_exec_exp_filter
#define VAR_LOCAL_CMD_SHELL
#define DICT_FLAG_UTF8_REQUEST
#define DEF_STAT_HOME_DIR
char * var_fbck_transp_maps
char * var_fallback_transport
BH_TABLE * been_here_init(int limit, int flags)
#define VAR_MBOX_TRANSP_MAPS
#define DEF_FALLBACK_TRANSP
#define CA_MAIL_SERVER_BOUNCE_INIT(v, w)
char * var_fwd_exp_filter
#define DEF_STRICT_MBOX_OWNER
#define DEF_EXEC_EXP_FILTER
#define DICT_FLAG_FOLD_FIX
DELIVER_REQUEST * request
#define VAR_STAT_HOME_DIR
#define VAR_EXP_OWN_ALIAS
bool var_frozen_delivered
int deliver_recipient(LOCAL_STATE, USER_ATTR)
#define DEF_RESET_OWNER_ATTR
#define CA_MAIL_SERVER_POST_INIT(v)
#define CA_MAIL_SERVER_INT_TABLE(v)
#define VAR_MAILBOX_LIMIT
#define DEF_CMD_EXP_FILTER
char * var_mailbox_transport
#define VAR_STRICT_MBOX_OWNER
#define VAR_LOCAL_DSN_FILTER
int main(int argc, char **argv)
#define VAR_CMD_EXP_FILTER
#define VAR_MESSAGE_LIMIT
#define DEF_MAILTOOL_COMPAT
MAPS * maps_create(const char *title, const char *map_names, int dict_flags)
const char * dict_changed_name(void)
#define VAR_MAILTOOL_COMPAT
#define DEF_MAILBOX_TRANSP
char * var_mailbox_cmd_maps
#define DEF_MAILBOX_CMD_MAPS
#define DEF_EXEC_DIRECTORY
#define VAR_EXEC_EXP_FILTER
DELIVERED_HDR_INFO * loop_info
#define DEF_COMMAND_MAXTIME
int local_cmd_deliver_mask
int mbox_lock_mask(const char *string)
#define DICT_FLAG_PARANOID
void msg_warn(const char *fmt,...)
#define VAR_FWD_EXP_FILTER
#define VAR_ALLOW_COMMANDS
#define VAR_COMMAND_MAXTIME
#define name_mask(tag, table, str)
#define MAIL_VERSION_STAMP_ALLOCATE
#define DEF_MBOX_TRANSP_MAPS
#define CA_MAIL_SERVER_TIME_TABLE(v)
DELIVERED_HDR_INFO * delivered_hdr_init(VSTREAM *fp, off_t offset, int flags)
NORETURN msg_fatal(const char *fmt,...)
#define DEF_FWD_EXP_FILTER
#define CA_MAIL_SERVER_PRIVILEGED
void deliver_attr_init(DELIVER_ATTR *attrp)
int forward_finish(DELIVER_REQUEST *request, DELIVER_ATTR attr, int cancel)
void set_eugid(uid_t euid, gid_t egid)
int deliver_request_done(VSTREAM *stream, DELIVER_REQUEST *request, int status)
#define VAR_EXEC_DIRECTORY
char * var_exec_directory
#define DEF_PROP_EXTENSION
bool var_reset_owner_attr
#define VAR_FBCK_TRANSP_MAPS
char * var_cmd_exp_filter
#define DEF_MAIL_SPOOL_DIR
char * var_mbox_transp_maps
NORETURN single_server_main(int, char **, SINGLE_SERVER_FN,...)
#define VAR_FALLBACK_TRANSP
#define RESET_USER_ATTR(usr_attr, level)
#define CA_MAIL_SERVER_LONG_TABLE(v)
char * var_local_cmd_shell
int local_file_deliver_mask
#define CA_MAIL_SERVER_PRE_ACCEPT(v)
#define DEF_MAILBOX_COMMAND
DELIVER_REQUEST * deliver_request_read(VSTREAM *stream)
char * var_mailbox_command
#define VAR_MAIL_SPOOL_DIR
int local_deliver_hdr_mask
#define DEF_DUP_FILTER_LIMIT
#define DEF_LOCAL_CMD_SHELL
#define DEF_EXP_OWN_ALIAS
#define DEF_LOCAL_DSN_FILTER
void delivered_hdr_free(DELIVERED_HDR_INFO *info)
#define CA_MAIL_SERVER_PRE_INIT(v)
char * var_mail_spool_dir
char * var_prop_extension
void msg_info(const char *fmt,...)
MAIL_VERSION_STAMP_DECLARE