summaryrefslogtreecommitdiffstats
path: root/qmail-smtpd.c
diff options
context:
space:
mode:
Diffstat (limited to 'qmail-smtpd.c')
-rw-r--r--qmail-smtpd.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/qmail-smtpd.c b/qmail-smtpd.c
index 7867197..f038314 100644
--- a/qmail-smtpd.c
+++ b/qmail-smtpd.c
@@ -80,6 +80,7 @@ void tls_nogateway();
80int ssl_rfd = -1, ssl_wfd = -1; /* SSL_get_Xfd() are broken */ 80int ssl_rfd = -1, ssl_wfd = -1; /* SSL_get_Xfd() are broken */
81stralloc proto = {0}; 81stralloc proto = {0};
82int tls_before_auth = 0; 82int tls_before_auth = 0;
83int tls_require = 0;
83#endif 84#endif
84 85
85#ifdef SMTPUTF8 86#ifdef SMTPUTF8
@@ -345,6 +346,7 @@ void setup()
345 346
346#ifdef TLS 347#ifdef TLS
347 if (env_get("TLSBEFOREAUTH")) tls_before_auth = 1; 348 if (env_get("TLSBEFOREAUTH")) tls_before_auth = 1;
349 if (env_get("TLSREQUIRE")) tls_require = 1;
348 if (env_get("SMTPS")) { smtps = 1; tls_init(); } 350 if (env_get("SMTPS")) { smtps = 1; tls_init(); }
349 else 351 else
350#endif 352#endif
@@ -724,6 +726,9 @@ void smtp_rset(arg) char *arg;
724void smtp_mail(arg) char *arg; 726void smtp_mail(arg) char *arg;
725{ 727{
726 if (!seenhelo) { err_wanthelo(); return; } 728 if (!seenhelo) { err_wanthelo(); return; }
729#if defined(TLS)
730 if (tls_require && !ssl) { err_wantstarttls(); return; }
731#endif
727 if (!addrparse(arg)) { err_syntax(); return; } 732 if (!addrparse(arg)) { err_syntax(); return; }
728 flagsize = 0; 733 flagsize = 0;
729 mailfrom_parms(arg); 734 mailfrom_parms(arg);