If not cipher list is specified for a relay rule, fallback to the global cipher list if defined, rather than libtls default. This is closer to the previous behavior.
Eric. Index: mta.c =================================================================== RCS file: /cvs/src/usr.sbin/smtpd/mta.c,v retrieving revision 1.236 diff -u -p -r1.236 mta.c --- mta.c 31 Mar 2021 17:47:16 -0000 1.236 +++ mta.c 31 Mar 2021 19:14:13 -0000 @@ -491,6 +491,7 @@ mta_setup_dispatcher(struct dispatcher * struct tls_config *config; struct pki *pki; struct ca *ca; + const char *ciphers; uint32_t protos; if (dispatcher->type != DISPATCHER_REMOTE) @@ -501,8 +502,10 @@ mta_setup_dispatcher(struct dispatcher * if ((config = tls_config_new()) == NULL) fatal("smtpd: tls_config_new"); - if (remote->tls_ciphers && - tls_config_set_ciphers(config, remote->tls_ciphers) == -1) + ciphers = env->sc_tls_ciphers; + if (remote->tls_ciphers) + ciphers = remote->tls_ciphers; + if (ciphers && tls_config_set_ciphers(config, ciphers) == -1) err(1, "%s", tls_config_error(config)); if (remote->tls_protocols &&