]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
submission: client: Create default backend in a separate function.
authorStephan Bosch <stephan.bosch@dovecot.fi>
Sat, 15 Sep 2018 12:08:57 +0000 (14:08 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Tue, 9 Oct 2018 06:41:17 +0000 (06:41 +0000)
src/submission/submission-backend.c
src/submission/submission-client.c
src/submission/submission-client.h

index 6588e0cb91cf9a563c5d041f8ef3a00a78d2ada9..5eb1aec210befa945731a08852d486cbd7f64427 100644 (file)
@@ -45,7 +45,8 @@ void submission_backend_started(struct submission_backend *backend,
 {
        struct client *client = backend->client;
 
-       client_default_backend_started(client, caps);
+       if (backend == client->backend_default)
+               client_default_backend_started(client, caps);
 }
 
 void submission_backends_client_input_pre(struct client *client)
index 99a68d6c563812f27d1646e207ce761ef1bad3dc..3490656a9760ad84bbe3407b6fd38ae5b6667b43 100644 (file)
@@ -123,6 +123,14 @@ void client_default_backend_started(struct client *client,
        }
 }
 
+static void
+client_create_backend_default(struct client *client,
+                             const struct submission_settings *set)
+{
+       client_proxy_create(client, set);
+       client->backend_default = &client->backend.backend;
+}
+
 static void client_init_urlauth(struct client *client)
 {
        static const char *access_apps[] = { "submit+", NULL };
@@ -192,7 +200,7 @@ struct client *client_create(int fd_in, int fd_out,
                fd_in, fd_out, user->conn.remote_ip, user->conn.remote_port,
                FALSE, &smtp_set, &smtp_callbacks, client);
 
-       client_proxy_create(client, set);
+       client_create_backend_default(client, set);
 
        smtp_server_connection_login(client->conn,
                client->user->username, helo,
index 9c219f5fa8d009ede7f4c686c39c9b745a28ae58..0a9283c20742ec79288a079496acd040a5abb690 100644 (file)
@@ -39,6 +39,7 @@ struct client {
 
        enum smtp_capability backend_capabilities;
        struct submission_backend_relay backend;
+       struct submission_backend *backend_default;
        struct submission_backend *backends;
        unsigned int backends_count;