]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: Fix adding "protocol" field to smtp_server_* events
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Sun, 26 Apr 2020 18:42:51 +0000 (21:42 +0300)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 4 May 2020 13:14:20 +0000 (16:14 +0300)
The server connection always had its own parent event instead of using
smtp_server.event.

src/lib-smtp/smtp-server-connection.c
src/lib-smtp/smtp-server-private.h
src/lib-smtp/smtp-server.c

index 404acc888b0dff5186783ff7187059974a8eca1b..77380a0f729b2b93a28650ddc3d371c28c36bbfe 100644 (file)
@@ -769,9 +769,10 @@ smtp_server_connection_event_create(struct smtp_server *server,
 {
        struct event *conn_event;
 
-       if (set != NULL && set->event_parent != NULL)
+       if (set != NULL && set->event_parent != NULL) {
                conn_event = event_create(set->event_parent);
-       else
+               smtp_server_event_init(server, conn_event);
+       } else
                conn_event = event_create(server->event);
        event_set_append_log_prefix(
                conn_event, t_strdup_printf(
index e66d83bc9b585519f1cb05f8927b625ccb731951..640d6d6c05991cff5b17ac0d35d886da3f10c524 100644 (file)
@@ -421,6 +421,7 @@ void smtp_server_transaction_finished(struct smtp_server_transaction *trans,
  * Server
  */
 
+void smtp_server_event_init(struct smtp_server *server, struct event *event);
 int smtp_server_init_ssl_ctx(struct smtp_server *server, const char **error_r);
 
 #endif
index cf5ea4374ddd4476f0bf8156ed1230cba707578a..d70c61b74ea775282eb50011b60cf9f144e71359 100644 (file)
@@ -88,9 +88,7 @@ struct smtp_server *smtp_server_init(const struct smtp_server_settings *set)
        /* There is no event log prefix added here, since the server itself does
           not log anything. */
        server->event = event_create(set->event_parent);
-       event_add_category(server->event, &event_category_smtp_server);
-       event_add_str(server->event, "protocol",
-                     smtp_protocol_name(server->set.protocol));
+       smtp_server_event_init(server, server->event);
        event_set_forced_debug(server->event, set->debug);
 
        server->conn_list = smtp_server_connection_list_init();
@@ -98,6 +96,13 @@ struct smtp_server *smtp_server_init(const struct smtp_server_settings *set)
        return server;
 }
 
+void smtp_server_event_init(struct smtp_server *server, struct event *event)
+{
+       event_add_category(event, &event_category_smtp_server);
+       event_add_str(event, "protocol",
+                     smtp_protocol_name(server->set.protocol));
+}
+
 void smtp_server_deinit(struct smtp_server **_server)
 {
        struct smtp_server *server = *_server;