ehlo only replies with STARTTLS when certs provided.
[lambdamail.git] / lambdamail.scm
index c51ac6a..946f831 100644 (file)
@@ -98,8 +98,7 @@
         (('helo) helo)
         (('starttls)
          (let-values (((in-port-tls out-port-tls)
-                       (ssl-start* tcp-in: in-port
-                                   tcp-out: out-port
+                       (ssl-start* #t in-port out-port
                                    certificate: (config-certfile config)
                                    private-key: (config-keyfile config)
                                    protocol: (cons 'tlsv12 ssl-max-protocol))))
                           "250-" (config-host config)
                           " Hello " (smtp-command-args "ehlo" line))
             (smtp-session 'send "250 AUTH PLAIN")
-            (smtp-session 'send "250 STARTTLS")
+            (if (tls-supported? config)
+                (smtp-session 'send "250 STARTTLS"))
             (loop mmsg received-messages))
            ((smtp-command? "starttls" line)
             (let ((args (smtp-command-args "starttls" line)))
                   (smtp-session 'send "501 Syntax error (no parameters allowed)")
                   (begin
                     (smtp-session 'send "220 Ready to start TLS")
-                    (smtp-session 'starttls)))))
+                    (smtp-session 'starttls))))
+            (loop mmsg received-messages))
            ((smtp-command? "auth plain" line)
             (let* ((auth-string (smtp-command-args "auth plain" line))
                    (auth-decoded (base64-decode auth-string))