From: Stephan Bosch Date: Sat, 15 Sep 2018 12:08:57 +0000 (+0200) Subject: submission: client: Create default backend in a separate function. X-Git-Tag: 2.3.9~1301 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=860f7540bb74be7a2b65992e4c6a71ada23dca69;p=thirdparty%2Fdovecot%2Fcore.git submission: client: Create default backend in a separate function. --- diff --git a/src/submission/submission-backend.c b/src/submission/submission-backend.c index 6588e0cb91..5eb1aec210 100644 --- a/src/submission/submission-backend.c +++ b/src/submission/submission-backend.c @@ -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) diff --git a/src/submission/submission-client.c b/src/submission/submission-client.c index 99a68d6c56..3490656a97 100644 --- a/src/submission/submission-client.c +++ b/src/submission/submission-client.c @@ -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, diff --git a/src/submission/submission-client.h b/src/submission/submission-client.h index 9c219f5fa8..0a9283c207 100644 --- a/src/submission/submission-client.h +++ b/src/submission/submission-client.h @@ -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;