981 TLS_APPL_STATE *smtp_tls_ctx;
982 int smtp_tls_insecure_mx_policy;
989 static int smtp_addr_pref;
993 static int deliver_message(
const char *service,
DELIVER_REQUEST *request)
1018 state->
src = request->
fp;
1041 static void smtp_service(
VSTREAM *client_stream,
char *service,
char **argv)
1050 msg_fatal(
"unexpected command-line argument: %s", argv[0]);
1061 status = deliver_message(service, request);
1068 static void post_init(
char *unused_name,
char **unused_argv)
1070 static const NAME_MASK lookup_masks[] = {
1075 static const NAME_MASK dns_res_opt_masks[] = {
1080 static const NAME_CODE dns_support[] = {
1083 #if (RES_USE_DNSSEC != 0) && (RES_USE_EDNS0 != 0)
1104 smtp_tls_insecure_mx_policy =
1106 switch (smtp_tls_insecure_mx_policy) {
1128 msg_info(
"host name lookup methods: %s",
1159 static void pre_init(
char *unused_name,
char **unused_argv)
1162 static const NAME_CODE addr_pref_map[] = {
1178 #ifdef USE_SASL_AUTH
1181 msg_warn(
"%s is true, but SASL support is not compiled in",
1214 TLS_CLIENT_INIT_PROPS props;
1224 TLS_CLIENT_INIT(&props,
1238 smtp_tls_list_init();
1240 msg_warn(
"TLS has been selected, but TLS support is not compiled in");
1311 if (smtp_addr_pref < 0)
1326 static void pre_accept(
char *unused_name,
char **unused_argv)
1331 msg_info(
"table %s has changed -- restarting", table);
1342 char *sane_procname;
1360 if (strcmp(sane_procname,
"smtp") == 0)
1362 else if (strcmp(sane_procname,
"lmtp") == 0)
1365 msg_fatal(
"unexpected process name \"%s\" - "
1373 smtp_time_table : lmtp_time_table),
1375 smtp_int_table : lmtp_int_table),
1377 smtp_str_table : lmtp_str_table),
1379 smtp_bool_table : lmtp_bool_table),
bool var_smtp_enforce_tls
#define VAR_SMTP_DSN_FILTER
#define SMTP_DNS_SUPPORT_DNSSEC
char * var_smtp_tls_insecure_mx_policy
char * var_smtp_tls_per_site
#define MATCH_FLAG_RETURN
#define TLS_LEV_DANE_ONLY
int ext_prop_mask(const char *param_name, const char *pattern)
#define SMTP_HOST_LOOKUP_DNS
char * var_smtp_pix_bug_maps
#define CA_MAIL_SERVER_BOOL_TABLE(v)
#define SMTP_DNS_RES_OPT_DEFNAMES
char * var_fallback_relay
#define str_name_mask(tag, table, mask)
char * var_smtp_host_lookup
#define VAR_PROP_EXTENSION
bool var_lmtp_assume_final
#define CA_MAIL_SERVER_STR_TABLE(v)
char * var_smtp_tls_mand_excl
int var_smtp_tls_scert_vd
char * var_smtp_sasl_passwd
int var_smtp_skip_5xx_greeting
char * var_smtp_sasl_tls_opts
int var_smtp_sasl_auth_cache_time
MAIL_VERSION_STAMP_DECLARE
#define SMTP_MISC_FLAG_PREF_IPV4
char * var_smtp_sasl_type
char * var_smtp_mime_chks
DELIVER_REQUEST * request
int var_smtp_starttls_tmout
char * var_smtp_tls_dcert_file
bool var_smtp_tls_note_starttls_offer
char * var_smtp_ehlo_dis_words
char * var_smtp_sasl_auth_cache_name
char * var_smtp_addr_pref
bool var_smtp_tls_wrappermode
int smtp_host_lookup_mask
char * var_smtp_sasl_path
char * var_smtp_tls_level
DICT * dict_open(const char *, int, int)
#define DICT_FLAG_UTF8_REQUEST
int var_smtp_mxsess_limit
#define CA_MAIL_SERVER_BOUNCE_INIT(v, w)
char * var_smtp_tls_loglevel
char * var_smtp_sasl_opts
#define DICT_FLAG_FOLD_FIX
char * var_smtp_tls_vfy_cmatch
bool var_smtp_sender_auth
char * var_smtp_tls_CApath
char * var_smtp_head_chks
#define SMTP_HOST_FLAG_DNS
char * var_scache_service
bool var_smtp_defer_mxaddr
#define string_list_init(o, f, p)
#define VAR_SMTP_TLS_INSECURE_MX_POLICY
char * var_cyrus_conf_path
#define SMTP_DNS_RES_OPT_DNSRCH
HBC_CALL_BACKS smtp_hbc_callbacks[]
#define CA_MAIL_SERVER_POST_INIT(v)
#define CA_MAIL_SERVER_INT_TABLE(v)
char * var_smtp_tls_policy
int var_smtp_mxaddr_limit
char * var_prop_extension
SCACHE * scache_multi_create(void)
bool var_smtp_cache_demand
char * var_smtp_tls_proto
char * var_smtp_ehlo_dis_maps
bool var_smtp_tls_force_tlsa
char * var_smtp_resp_filter
void smtp_vrfy_init(void)
SMTP_STATE * smtp_state_alloc(void)
MAPS * maps_create(const char *title, const char *map_names, int dict_flags)
const char * dict_changed_name(void)
bool var_smtp_sasl_auth_soft_bounce
char * var_smtp_generic_maps
char * var_smtp_tls_tafile
char * var_smtp_body_chks
STRING_LIST * smtp_cache_dest
bool var_smtp_balance_inet_proto
bool var_smtp_tls_blk_early_mail_reply
void msg_warn(const char *fmt,...)
#define SMTP_HOST_FLAG_NATIVE
char * var_smtp_sasl_mechs
#define NAME_CODE_FLAG_NONE
void smtp_state_free(SMTP_STATE *)
char * var_smtp_dsn_filter
bool var_smtp_dummy_mail_auth
void debug_peer_init(void)
char * var_smtp_pix_bug_words
#define name_mask(tag, table, str)
#define MAIL_VERSION_STAMP_ALLOCATE
int var_scache_proto_tmout
#define SMTP_DNS_SUPPORT_DISABLED
char * var_smtp_tls_eckey_file
bool var_smtp_cname_overr
char * var_smtp_bind_addr6
#define CA_MAIL_SERVER_TIME_TABLE(v)
char * var_smtp_cache_dest
char * var_smtp_sasl_tlsv_opts
#define INET_PROTO_NAME_IPV6
unsigned smtp_dns_res_opt
char * var_smtp_tls_excl_ciph
int name_code(const NAME_CODE *table, int flags, const char *name)
NORETURN msg_fatal(const char *fmt,...)
char * var_smtp_helo_name
bool var_smtp_tls_enforce_peername
int var_ign_mx_lookup_err
void smtp_sasl_initialize(void)
int main(int argc, char **argv)
#define SMTP_MISC_FLAG_PREF_IPV6
bool var_smtp_send_xforward
int tls_level_lookup(const char *)
int deliver_request_done(VSTREAM *stream, DELIVER_REQUEST *request, int status)
bool var_smtp_quote_821_env
char * var_smtp_dns_res_opt
char * var_notify_classes
char * var_smtp_dns_support
HBC_CHECKS * smtp_header_checks
HBC_CHECKS * hbc_header_checks_create(const char *header_checks_name, const char *header_checks_value, const char *mime_header_checks_name, const char *mime_header_checks_value, const char *nested_header_checks_name, const char *nested_header_checks_value, HBC_CALL_BACKS *call_backs)
char * var_smtp_tls_fpt_cmatch
char * var_smtp_bind_addr
bool var_smtp_sasl_enable
#define SMTP_RCPT_INIT(state)
char * sane_basename(VSTRING *bp, const char *path)
char * var_smtp_nest_chks
HBC_CHECKS * hbc_body_checks_create(const char *body_checks_name, const char *body_checks_value, HBC_CALL_BACKS *call_backs)
char * var_inet_interfaces
#define SMTP_DNS_DISABLED
char * var_smtp_tls_eccert_file
char * var_smtp_tls_fpt_dgst
void const char DICT * smtp_chat_resp_filter
#define INET_PROTO_NAME_ANY
NORETURN single_server_main(int, char **, SINGLE_SERVER_FN,...)
int smtp_connect(SMTP_STATE *)
char * var_smtp_tls_mand_proto
SCACHE * scache_clnt_create(const char *, int, int, int)
bool var_smtp_rec_deadline
char * var_smtp_tls_key_file
MAPS * smtp_ehlo_dis_maps
#define VAR_SMTP_CACHE_DEST
char * var_smtp_tls_CAfile
char * var_smtp_dns_re_filter
#define LMTP_SMTP_SUFFIX(x)
#define CA_MAIL_SERVER_PRE_ACCEPT(v)
char * var_smtp_tls_sec_cmatch
DELIVER_REQUEST * deliver_request_read(VSTREAM *stream)
#define INET_PROTO_NAME_IPV4
char * var_smtp_tls_cert_file
#define SMTP_HOST_LOOKUP_NATIVE
HBC_CHECKS * smtp_body_checks
#define SMTP_DNS_SUPPORT_ENABLED
char * var_smtp_tls_mand_ciph
char * var_smtp_tls_dkey_file
void dns_rr_filter_compile(const char *, const char *)
#define CA_MAIL_SERVER_PRE_INIT(v)
void msg_info(const char *fmt,...)