97 const char *myname =
"deliver_switch";
182 msg_warn(
"error looking up passwd info for %s: %m",
191 "cannot access home directory %s: %m", mypwd->
pw_dir);
208 const char *myname =
"deliver_recipient";
272 msg_warn(
"%s: address with illegal extension: %s",
298 rcpt_stat = deliver_switch(state, usr_attr);
int mypwnam_err(const char *name, struct mypasswd **result)
#define BOUNCE_ATTR(attr)
char * mystrdup(const char *str)
int deliver_indirect(LOCAL_STATE state)
int deliver_alias(LOCAL_STATE state, USER_ATTR usr_attr, char *name, int *statusp)
int delivered_hdr_find(DELIVERED_HDR_INFO *info, const char *address)
#define strcasecmp_utf8(s1, s2)
DELIVER_REQUEST * request
void deliver_attr_dump(DELIVER_ATTR *attrp)
#define BOUNCE_FLAGS(request)
#define casefold(dst, src)
int bounce_append(int flags, const char *id, MSG_STATS *stats, RECIPIENT *rcpt, const char *relay, DSN *dsn)
int stat_as(const char *path, struct stat *st, uid_t euid, gid_t egid)
int deliver_mailbox(LOCAL_STATE, USER_ATTR, int *)
int been_here(BH_TABLE *dup_filter, const char *fmt,...)
int deliver_dotforward(LOCAL_STATE state, USER_ATTR usr_attr, int *statusp)
DELIVERED_HDR_INFO * loop_info
void msg_warn(const char *fmt,...)
VSTRING * vstring_alloc(ssize_t len)
int deliver_recipient(LOCAL_STATE state, USER_ATTR usr_attr)
DSN_BUF * dsb_simple(DSN_BUF *dsb, const char *status, const char *format,...)
int bounce_workaround(LOCAL_STATE state)
void mypwfree(struct mypasswd *mypwd)
VSTRING * vstring_free(VSTRING *vp)
int defer_append(int flags, const char *id, MSG_STATS *stats, RECIPIENT *rcpt, const char *relay, DSN *dsn)
#define MSG_LOG_STATE(m, p)
int deliver_unknown(LOCAL_STATE, USER_ATTR)
char * split_at_right(char *string, int delimiter)