smtp_session
if ((smtp_session(listener, fd[0], &listener->ss, env->sc_hostname, NULL)) == -1) {
ret = smtp_session(listener, sock, ss, NULL, io);
smtp_tls_init(struct smtp_session *s)
smtp_tls_started(struct smtp_session *s)
struct smtp_session *s = arg;
smtp_command(struct smtp_session *s, char *line)
smtp_check_rset(struct smtp_session *s, const char *args)
smtp_check_helo(struct smtp_session *s, const char *args)
smtp_check_ehlo(struct smtp_session *s, const char *args)
smtp_check_auth(struct smtp_session *s, const char *args)
smtp_check_starttls(struct smtp_session *s, const char *args)
smtp_check_mail_from(struct smtp_session *s, const char *args)
smtp_check_rcpt_to(struct smtp_session *s, const char *args)
smtp_check_data(struct smtp_session *s, const char *args)
smtp_check_noop(struct smtp_session *s, const char *args)
smtp_check_noparam(struct smtp_session *s, const char *args)
smtp_query_filters(enum filter_phase phase, struct smtp_session *s, const char *args)
smtp_filter_begin(struct smtp_session *s)
smtp_filter_end(struct smtp_session *s)
smtp_filter_data_begin(struct smtp_session *s)
static void smtp_lookup_servername(struct smtp_session *);
smtp_filter_data_end(struct smtp_session *s)
smtp_filter_phase(enum filter_phase phase, struct smtp_session *s, const char *param)
static void smtp_connected(struct smtp_session *);
static void smtp_send_banner(struct smtp_session *);
smtp_proceed_rset(struct smtp_session *s, const char *args)
static void smtp_tls_init(struct smtp_session *);
static void smtp_tls_started(struct smtp_session *);
smtp_proceed_helo(struct smtp_session *s, const char *args)
smtp_proceed_ehlo(struct smtp_session *s, const char *args)
static void smtp_enter_state(struct smtp_session *, int);
static void smtp_reply(struct smtp_session *, char *, ...);
static void smtp_command(struct smtp_session *, char *);
static void smtp_rfc4954_auth_plain(struct smtp_session *, char *);
smtp_proceed_auth(struct smtp_session *s, const char *args)
static void smtp_rfc4954_auth_login(struct smtp_session *, char *);
static void smtp_free(struct smtp_session *, const char *);
smtp_proceed_starttls(struct smtp_session *s, const char *args)
smtp_proceed_mail_from(struct smtp_session *s, const char *args)
static void smtp_auth_failure_pause(struct smtp_session *);
smtp_proceed_rcpt_to(struct smtp_session *s, const char *args)
static int smtp_tx(struct smtp_session *);
smtp_proceed_data(struct smtp_session *s, const char *args)
smtp_proceed_quit(struct smtp_session *s, const char *args)
smtp_proceed_noop(struct smtp_session *s, const char *args)
smtp_proceed_help(struct smtp_session *s, const char *args)
smtp_proceed_commit(struct smtp_session *s, const char *args)
smtp_proceed_rollback(struct smtp_session *s, const char *args)
smtp_rfc4954_auth_plain(struct smtp_session *s, char *arg)
smtp_rfc4954_auth_login(struct smtp_session *s, char *arg)
smtp_lookup_servername(struct smtp_session *s)
smtp_connected(struct smtp_session *s)
static int smtp_check_rset(struct smtp_session *, const char *);
smtp_proceed_connected(struct smtp_session *s)
static int smtp_check_helo(struct smtp_session *, const char *);
smtp_send_banner(struct smtp_session *s)
static int smtp_check_ehlo(struct smtp_session *, const char *);
smtp_enter_state(struct smtp_session *s, int newstate)
static int smtp_check_auth(struct smtp_session *s, const char *);
smtp_reply(struct smtp_session *s, char *fmt, ...)
static int smtp_check_starttls(struct smtp_session *, const char *);
static int smtp_check_mail_from(struct smtp_session *, const char *);
static int smtp_check_rcpt_to(struct smtp_session *, const char *);
static int smtp_check_data(struct smtp_session *, const char *);
static int smtp_check_noop(struct smtp_session *, const char *);
static int smtp_check_noparam(struct smtp_session *, const char *);
static void smtp_filter_phase(enum filter_phase, struct smtp_session *, const char *);
static void smtp_proceed_connected(struct smtp_session *);
smtp_free(struct smtp_session *s, const char * reason)
static void smtp_proceed_rset(struct smtp_session *, const char *);
static void smtp_proceed_helo(struct smtp_session *, const char *);
static void smtp_proceed_ehlo(struct smtp_session *, const char *);
static void smtp_proceed_auth(struct smtp_session *, const char *);
static void smtp_proceed_starttls(struct smtp_session *, const char *);
static void smtp_proceed_mail_from(struct smtp_session *, const char *);
static void smtp_proceed_rcpt_to(struct smtp_session *, const char *);
static void smtp_proceed_data(struct smtp_session *, const char *);
struct smtp_session *s = p;
static void smtp_proceed_noop(struct smtp_session *, const char *);
smtp_auth_failure_pause(struct smtp_session *s)
static void smtp_proceed_help(struct smtp_session *, const char *);
smtp_tx(struct smtp_session *s)
static void smtp_proceed_quit(struct smtp_session *, const char *);
static void smtp_proceed_commit(struct smtp_session *, const char *);
static void smtp_proceed_rollback(struct smtp_session *, const char *);
static void smtp_filter_begin(struct smtp_session *);
static void smtp_filter_end(struct smtp_session *);
static void smtp_filter_data_begin(struct smtp_session *);
static void smtp_filter_data_end(struct smtp_session *);
static void smtp_report_link_connect(struct smtp_session *, const char *, int,
static void smtp_report_link_greeting(struct smtp_session *, const char *);
static void smtp_report_link_identify(struct smtp_session *, const char *, const char *);
static void smtp_report_link_tls(struct smtp_session *, const char *);
static void smtp_report_link_disconnect(struct smtp_session *);
static void smtp_report_link_auth(struct smtp_session *, const char *, const char *);
static void smtp_report_tx_reset(struct smtp_session *, uint32_t);
static void smtp_report_tx_begin(struct smtp_session *, uint32_t);
static void smtp_report_tx_mail(struct smtp_session *, uint32_t, const char *, int);
static void smtp_report_tx_rcpt(struct smtp_session *, uint32_t, const char *, int);
static void smtp_report_tx_envelope(struct smtp_session *, uint32_t, uint64_t);
static void smtp_report_tx_data(struct smtp_session *, uint32_t, int);
static void smtp_report_tx_commit(struct smtp_session *, uint32_t, size_t);
static void smtp_report_tx_rollback(struct smtp_session *, uint32_t);
static void smtp_report_protocol_client(struct smtp_session *, const char *);
static void smtp_report_protocol_server(struct smtp_session *, const char *);
static void smtp_report_filter_response(struct smtp_session *, int, int, const char *);
static void smtp_report_timeout(struct smtp_session *);
int (*check)(struct smtp_session *, const char *);
void (*proceed)(struct smtp_session *, const char *);
struct smtp_session *s;
struct smtp_session *s;
struct smtp_session *s;
struct smtp_session *s;
smtp_report_link_connect(struct smtp_session *s, const char *rdns, int fcrdns,
smtp_report_link_greeting(struct smtp_session *s,
smtp_report_link_identify(struct smtp_session *s, const char *method, const char *identity)
smtp_report_link_tls(struct smtp_session *s, const char *ssl)
smtp_report_link_disconnect(struct smtp_session *s)
smtp_report_link_auth(struct smtp_session *s, const char *user, const char *result)
smtp_report_tx_reset(struct smtp_session *s, uint32_t msgid)
smtp_report_tx_begin(struct smtp_session *s, uint32_t msgid)
smtp_report_tx_mail(struct smtp_session *s, uint32_t msgid, const char *address, int ok)
smtp_report_tx_rcpt(struct smtp_session *s, uint32_t msgid, const char *address, int ok)
smtp_report_tx_envelope(struct smtp_session *s, uint32_t msgid, uint64_t evpid)
smtp_report_tx_data(struct smtp_session *s, uint32_t msgid, int ok)
smtp_report_tx_commit(struct smtp_session *s, uint32_t msgid, size_t msgsz)
smtp_report_tx_rollback(struct smtp_session *s, uint32_t msgid)
smtp_report_protocol_client(struct smtp_session *s, const char *command)
smtp_report_protocol_server(struct smtp_session *s, const char *response)
smtp_report_filter_response(struct smtp_session *s, int phase, int response, const char *param)
smtp_report_timeout(struct smtp_session *s)
struct smtp_session *s;
struct smtp_session *s = arg;
struct smtp_session *s = arg;
struct smtp_session *s;
struct smtp_session *session;
int smtp_session(struct listener *, int, const struct sockaddr_storage *,