80 O_WRONLY | O_APPEND | O_CREAT, 0600);
82 msg_fatal(
"open file %s %s: %m", service, queue_id);
89 msg_fatal(
"lock file %s %s: %m", service, queue_id);
109 msg_fatal(
"seek file %s %s: %m", service, queue_id);
111 #define NOT_NULL_EMPTY(s) ((s) != 0 && *(s) != 0)
112 #define STR(x) vstring_str(x)
152 msg_fatal(
"truncate file %s %s: %m", service, queue_id);
154 msg_fatal(
"append file %s %s: %m", service, queue_id);
164 msg_warn(
"append file %s %s: %m", service, queue_id);
#define MAIL_ATTR_DSN_NOTIFY
#define strcasecmp_utf8(s1, s2)
#define MAIL_ATTR_DSN_ACTION
int deliver_flock(int fd, int lock_style, VSTRING *why)
#define MAIL_ATTR_DSN_STATUS
#define MAIL_ATTR_DSN_ORCPT
VSTREAM * vstream_fprintf(VSTREAM *stream, const char *fmt,...)
int vstream_fclose(VSTREAM *stream)
VSTREAM * mail_queue_open(const char *queue_name, const char *queue_id, int flags, mode_t mode)
#define MAIL_ATTR_DSN_MNAME
void msg_warn(const char *fmt,...)
VSTRING * vstring_alloc(ssize_t len)
NORETURN msg_fatal(const char *fmt,...)
off_t vstream_fseek(VSTREAM *stream, off_t offset, int whence)
int vstream_fflush(VSTREAM *stream)
#define NOT_NULL_EMPTY(s)
int bounce_append_service(int unused_flags, char *service, char *queue_id, RECIPIENT *rcpt, DSN *dsn)
#define quote_822_local(dst, src)
VSTRING * vstring_free(VSTRING *vp)
#define vstream_fileno(vp)
#define MAIL_ATTR_DSN_MTYPE
#define MAIL_ATTR_DSN_DTEXT
#define MAIL_ATTR_DSN_DTYPE
int vstream_fputs(const char *str, VSTREAM *stream)