{ "client_set_id", opt_stringptr | opt_public,
OPT_OFF(auth_instance, set_client_id) },
{ "driver", opt_stringptr | opt_public,
- OPT_OFF(auth_instance, driver_name) },
+ OPT_OFF(auth_instance, drinst.driver_name) },
{ "public_name", opt_stringptr | opt_public,
OPT_OFF(auth_instance, public_name) },
{ "server_advertise_condition", opt_stringptr | opt_public,
BOOL smtp_etrn_serialize = TRUE;
BOOL smtp_input = FALSE;
BOOL smtp_return_error_details = FALSE;
-#ifdef SUPPORT_SPF
-BOOL spf_result_guessed = FALSE;
-#endif
BOOL split_spool_directory = FALSE;
BOOL spool_wireformat = FALSE;
BOOL strict_acl_vars = FALSE;
#endif
uschar *acl_not_smtp_start = NULL;
uschar *acl_removed_headers = NULL;
+uschar *acl_smtp_atrn = NULL;
uschar *acl_smtp_auth = NULL;
uschar *acl_smtp_connect = NULL;
uschar *acl_smtp_data = NULL;
tree_node *acl_var_m = NULL;
uschar *acl_verify_message = NULL;
string_item *acl_warn_logged = NULL;
+int acl_where = ACL_WHERE_UNKNOWN;
/* Names of SMTP places for use in ACL error messages, and corresponding SMTP
error codes (only those used) */
[ACL_WHERE_PRDR] = US"PRDR",
#endif
[ACL_WHERE_NOTSMTP] = US"non-SMTP",
+ [ACL_WHERE_ATRN] = US"ATRN",
[ACL_WHERE_AUTH] = US"AUTH",
[ACL_WHERE_CONNECT] = US"connection",
[ACL_WHERE_ETRN] = US"ETRN",
#ifndef DISABLE_PRDR
[ACL_WHERE_PRDR] = US"550",
#endif
+ [ACL_WHERE_ATRN] = US"450",
[ACL_WHERE_AUTH] = US"503",
[ACL_WHERE_CONNECT] = US"550",
+ [ACL_WHERE_ATRN] = US"450",
[ACL_WHERE_ETRN] = US"458",
[ACL_WHERE_EXPN] = US"550",
[ACL_WHERE_HELO] = US"550",
tree_node *addresslist_anchor = NULL;
int addresslist_count = 0;
gid_t *admin_groups = NULL;
-
-#ifdef EXPERIMENTAL_ARC
-struct arc_set *arc_received = NULL;
-int arc_received_instance = 0;
-int arc_oldest_pass = 0;
-const uschar *arc_state = NULL;
-const uschar *arc_state_reason = NULL;
-#endif
+const uschar *atrn_domains = NULL;
+const uschar *atrn_host = NULL;
uschar *authenticated_fail_id = NULL;
uschar *authenticated_id = NULL;
auth_instance *auths = NULL;
uschar *auth_advertise_hosts = US"*";
auth_instance auth_defaults = {
- .next = NULL,
- .name = NULL,
- .info = NULL,
- .options_block = NULL,
- .driver_name = NULL,
+ .drinst = {
+ .next = NULL,
+ .name = NULL,
+ .info = NULL,
+ .options_block = NULL,
+ .driver_name = NULL,
+ },
.advertise_condition = NULL,
.client_condition = NULL,
.public_name = NULL,
uschar *clmacros[MAX_CLMACROS];
FILE *config_file = NULL;
const uschar *config_filename = NULL;
-int config_lineno = 0;
+unsigned config_lineno = 0;
#ifdef CONFIGURE_GROUP
gid_t config_gid = CONFIGURE_GROUP;
#else
const uschar *continue_host_address = NULL;
uschar continue_next_id[MESSAGE_ID_LENGTH +1] = {[0]='\0'};
int continue_sequence = 1;
-uschar *continue_transport = NULL;
+const uschar *continue_transport = NULL;
#ifndef COMPILE_UTILITY
open_db *continue_retry_db = NULL;
open_db *continue_wait_db = NULL;
uschar *deliver_selectstring = NULL;
uschar *deliver_selectstring_sender = NULL;
-#ifndef DISABLE_DKIM
-unsigned dkim_collect_input = 0;
-uschar *dkim_cur_signer = NULL;
-int dkim_key_length = 0;
-void *dkim_signatures = NULL;
-uschar *dkim_signers = NULL;
-uschar *dkim_signing_domain = NULL;
-uschar *dkim_signing_selector = NULL;
-gstring *dkim_signing_record = NULL;
-uschar *dkim_verify_hashes = US"sha256:sha512";
-uschar *dkim_verify_keytypes = US"ed25519:rsa";
-uschar *dkim_verify_min_keysizes = US"rsa=1024 ed25519=250";
-BOOL dkim_verify_minimal = FALSE;
-uschar *dkim_verify_overall = NULL;
-uschar *dkim_verify_signers = US"$dkim_signers";
-uschar *dkim_verify_status = NULL;
-uschar *dkim_verify_reason = NULL;
-#endif
-#ifdef SUPPORT_DMARC
-uschar *dmarc_domain_policy = NULL;
-uschar *dmarc_forensic_sender = NULL;
-uschar *dmarc_history_file = NULL;
-uschar *dmarc_status = NULL;
-uschar *dmarc_status_text = NULL;
-uschar *dmarc_tld_file = NULL;
-uschar *dmarc_used_domain = NULL;
-#endif
-
uschar *dns_again_means_nonexist = NULL;
int dns_csa_search_limit = 5;
int dns_cname_loops = 1;
uid_t root_uid = ROOT_UID;
router_instance *routers = NULL;
-router_instance router_defaults = {
- .next = NULL,
- .name = NULL,
- .info = NULL,
- .options_block = NULL,
- .driver_name = NULL,
- .address_data = NULL,
-#ifdef EXPERIMENTAL_BRIGHTMAIL
- .bmi_rule = NULL,
-#endif
- .cannot_route_message = NULL,
- .condition = NULL,
- .current_directory = NULL,
- .debug_string = NULL,
- .domains = NULL,
- .errors_to = NULL,
- .expand_gid = NULL,
- .expand_uid = NULL,
- .expand_more = NULL,
- .expand_unseen = NULL,
- .extra_headers = NULL,
- .fallback_hosts = NULL,
- .home_directory = NULL,
- .ignore_target_hosts = NULL,
- .local_parts = NULL,
- .pass_router_name = NULL,
- .prefix = NULL,
- .redirect_router_name = NULL,
- .remove_headers = NULL,
- .require_files = NULL,
- .router_home_directory = NULL,
+/* All elements not mentioned will be 0/NULL/FALSE */
+router_instance router_defaults = {
.self = US"freeze",
- .senders = NULL,
- .suffix = NULL,
- .translate_ip_address = NULL,
- .transport_name = NULL,
.address_test = TRUE,
-#ifdef EXPERIMENTAL_BRIGHTMAIL
- .bmi_deliver_alternate = FALSE,
- .bmi_deliver_default = FALSE,
- .bmi_dont_deliver = FALSE,
-#endif
.expn = TRUE,
- .caseful_local_part = FALSE,
- .check_local_user = FALSE,
- .disable_logging = FALSE,
- .fail_verify_recipient = FALSE,
- .fail_verify_sender = FALSE,
- .gid_set = FALSE,
- .initgroups = FALSE,
.log_as_local = TRUE_UNSET,
.more = TRUE,
- .pass_on_timeout = FALSE,
- .prefix_optional = FALSE,
.repeat_use = TRUE,
.retry_use_local_part = TRUE_UNSET,
- .same_domain_copy_routing = FALSE,
- .self_rewrite = FALSE,
- .set = NULL,
- .suffix_optional = FALSE,
- .verify_only = FALSE,
.verify_recipient = TRUE,
.verify_sender = TRUE,
- .uid_set = FALSE,
- .unseen = FALSE,
- .dsn_lasthop = FALSE,
.self_code = self_freeze,
.uid = (uid_t)(-1),
.gid = (gid_t)(-1),
- .fallback_hostlist = NULL,
- .transport = NULL,
- .pass_router = NULL,
- .redirect_router = NULL,
-
.dnssec = { .request= US"*", .require=NULL },
};
-uschar *router_name = NULL;
+const uschar *router_name = NULL;
tree_node *router_var = NULL;
ip_address_item *running_interfaces = NULL;
uschar *spam_score = NULL;
uschar *spam_score_int = NULL;
#endif
-#ifdef SUPPORT_SPF
-uschar *spf_guess = US"v=spf1 a/24 mx/24 ptr ?all";
-uschar *spf_header_comment = NULL;
-uschar *spf_received = NULL;
-uschar *spf_result = NULL;
-uschar *spf_smtp_comment = NULL;
-uschar *spf_smtp_comment_template
- /* Used to be: "Please%_see%_http://www.open-spf.org/Why?id=%{S}&ip=%{C}&receiver=%{R}" */
- = US"Please%_see%_http://www.open-spf.org/Why";
-
-#endif
FILE *spool_data_file = NULL;
uschar *spool_directory = US SPOOL_DIRECTORY
};
int transport_count;
-uschar *transport_name = NULL;
+const uschar *transport_name = NULL;
int transport_newlines;
const uschar **transport_filter_argv = NULL;
int transport_filter_timeout;