]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: smtp-server - Add support for suppressing the inital greeting reply.
authorStephan Bosch <stephan.bosch@open-xchange.com>
Wed, 27 Jan 2021 12:40:43 +0000 (13:40 +0100)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 5 Nov 2021 06:49:45 +0000 (06:49 +0000)
src/lib-smtp/smtp-server-connection.c
src/lib-smtp/smtp-server.c
src/lib-smtp/smtp-server.h

index 9d7ce4f2206360863ec29662a98e5f1e71a878b0..43abb24f74940fab9d064ca99c5f57f5316ec1e0 100644 (file)
@@ -284,7 +284,9 @@ static void smtp_server_connection_ready(struct smtp_server_connection *conn)
                                    smtp_server_connection_output, conn);
 
        o_stream_cork(conn->conn.output);
-       if (conn->authenticated) {
+       if (conn->set.no_greeting) {
+               /* Don't send greeting or login reply. */
+       } else if (conn->authenticated) {
                /* RFC 4954, Section 4:
                   Should the client successfully complete the exchange, the
                   SMTP server issues a 235 reply. */
@@ -912,6 +914,8 @@ smtp_server_connection_alloc(struct smtp_server *server,
                conn->set.rcpt_domain_optional =
                        conn->set.rcpt_domain_optional ||
                                set->rcpt_domain_optional;
+               conn->set.no_greeting =
+                       conn->set.no_greeting || set->no_greeting;
                conn->set.debug = conn->set.debug || set->debug;
        }
 
index a47930edc957b1ea3f7aa9a763814b681307126b..e0afde3116365cdfdbbf23a22080561d5c9b3a72 100644 (file)
@@ -85,6 +85,7 @@ struct smtp_server *smtp_server_init(const struct smtp_server_settings *set)
        server->set.auth_optional = set->auth_optional;
        server->set.rcpt_domain_optional = set->rcpt_domain_optional;
        server->set.mail_path_allow_broken = set->mail_path_allow_broken;
+       server->set.no_greeting = set->no_greeting;
        server->set.debug = set->debug;
        server->set.no_state_in_reason = set->no_state_in_reason;
 
index f3f1b5ef08cbdfd61381dc05d7e9f48c394f4707..a31a535bba363c293ad61862a5b9a953fb5a3868 100644 (file)
@@ -394,6 +394,9 @@ struct smtp_server_settings {
        bool rcpt_domain_optional:1;
        /* Don't include "(state=%s)" in the disconnection reason string. */
        bool no_state_in_reason:1;
+       /* Don't send a greeting or login success message to the client upon
+          connection start. */
+       bool no_greeting:1;
 };
 
 struct smtp_server_stats {