mta_session
mta_session(c->relay, route, mx->mxname); /* this never fails synchronously */
struct mta_session *s = arg;
static void mta_free(struct mta_session *);
static void mta_connect(struct mta_session *);
static void mta_enter_state(struct mta_session *, int);
static void mta_flush_task(struct mta_session *, int, const char *, size_t, int);
static void mta_error(struct mta_session *, const char *, ...)
static void mta_send(struct mta_session *, char *, ...)
static ssize_t mta_queue_data(struct mta_session *);
static void mta_response(struct mta_session *, char *);
mta_send(struct mta_session *s, char *fmt, ...)
static void mta_tls_init(struct mta_session *);
static void mta_tls_started(struct mta_session *);
mta_queue_data(struct mta_session *s)
static struct mta_session *mta_tree_pop(struct tree *, uint64_t);
mta_flush_task(struct mta_session *s, int delivery, const char *error, size_t count,
mta_error(struct mta_session *s, const char *fmt, ...)
static void mta_filter_begin(struct mta_session *);
static void mta_filter_end(struct mta_session *);
static void mta_connected(struct mta_session *);
mta_tls_init(struct mta_session *s)
static void mta_disconnected(struct mta_session *);
static void mta_report_link_connect(struct mta_session *, const char *, int,
mta_tls_started(struct mta_session *s)
static void mta_report_link_greeting(struct mta_session *, const char *);
static void mta_report_link_identify(struct mta_session *, const char *, const char *);
static void mta_report_link_tls(struct mta_session *, const char *);
static void mta_report_link_disconnect(struct mta_session *);
static void mta_report_link_auth(struct mta_session *, const char *, const char *);
static void mta_report_tx_reset(struct mta_session *, uint32_t);
static void mta_report_tx_begin(struct mta_session *, uint32_t);
static void mta_report_tx_mail(struct mta_session *, uint32_t, const char *, int);
mta_filter_begin(struct mta_session *s)
static void mta_report_tx_rcpt(struct mta_session *, uint32_t, const char *, int);
mta_filter_end(struct mta_session *s)
static void mta_report_tx_envelope(struct mta_session *, uint32_t, uint64_t);
mta_connected(struct mta_session *s)
static void mta_report_tx_data(struct mta_session *, uint32_t, int);
static void mta_report_tx_commit(struct mta_session *, uint32_t, size_t);
static void mta_report_tx_rollback(struct mta_session *, uint32_t);
mta_disconnected(struct mta_session *s)
static void mta_report_protocol_client(struct mta_session *, const char *);
mta_report_link_connect(struct mta_session *s, const char *rdns, int fcrdns,
static void mta_report_protocol_server(struct mta_session *, const char *);
mta_report_link_greeting(struct mta_session *s,
mta_report_link_identify(struct mta_session *s, const char *method, const char *identity)
static void mta_report_filter_response(struct mta_session *, int, int, const char *);
mta_report_link_tls(struct mta_session *s, const char *ssl)
mta_report_link_disconnect(struct mta_session *s)
mta_report_link_auth(struct mta_session *s, const char *user, const char *result)
static void mta_report_timeout(struct mta_session *);
mta_report_tx_reset(struct mta_session *s, uint32_t msgid)
mta_report_tx_begin(struct mta_session *s, uint32_t msgid)
mta_report_tx_mail(struct mta_session *s, uint32_t msgid, const char *address, int ok)
mta_report_tx_rcpt(struct mta_session *s, uint32_t msgid, const char *address, int ok)
mta_report_tx_envelope(struct mta_session *s, uint32_t msgid, uint64_t evpid)
mta_report_tx_data(struct mta_session *s, uint32_t msgid, int ok)
mta_report_tx_commit(struct mta_session *s, uint32_t msgid, size_t msgsz)
mta_report_tx_rollback(struct mta_session *s, uint32_t msgid)
mta_report_protocol_client(struct mta_session *s, const char *command)
mta_report_protocol_server(struct mta_session *s, const char *response)
mta_report_filter_response(struct mta_session *s, int phase, int response, const char *param)
mta_report_timeout(struct mta_session *s)
struct mta_session *s;
struct mta_session *s;
static struct mta_session *
struct mta_session *s;
mta_free(struct mta_session *s)
struct mta_session *s = arg;
struct mta_session *s = arg;
struct mta_session *s = arg;
struct mta_session *s = arg;
mta_connect(struct mta_session *s)
mta_enter_state(struct mta_session *s, int newstate)
mta_response(struct mta_session *s, char *line)
void mta_session(struct mta_relay *, struct mta_route *, const char *);