From: Stephan Bosch Date: Sat, 15 Sep 2018 13:13:32 +0000 (+0200) Subject: submission: relay backend: Turn client_get_max_mail_size() into a relay backend vfunc. X-Git-Tag: 2.3.9~1296 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0f2963e04578e64373f631da137271ca2682e368;p=thirdparty%2Fdovecot%2Fcore.git submission: relay backend: Turn client_get_max_mail_size() into a relay backend vfunc. --- diff --git a/src/submission/submission-backend-relay.c b/src/submission/submission-backend-relay.c index 39aac812f9..9f556b82da 100644 --- a/src/submission/submission-backend-relay.c +++ b/src/submission/submission-backend-relay.c @@ -865,9 +865,11 @@ backend_relay_client_input_post(struct submission_backend *_backend) smtp_client_connection_uncork(backend->conn); } -uoff_t client_proxy_get_max_mail_size(struct client *client) +static uoff_t +backend_relay_get_max_mail_size(struct submission_backend *_backend) { - struct submission_backend_relay *backend = &client->backend; + struct submission_backend_relay *backend = + (struct submission_backend_relay *)_backend; return smtp_client_connection_get_size_capability(backend->conn); } @@ -880,6 +882,8 @@ static struct submission_backend_vfuncs backend_relay_vfuncs = { .client_input_pre = backend_relay_client_input_pre, .client_input_post = backend_relay_client_input_post, + .get_max_mail_size = backend_relay_get_max_mail_size, + .cmd_helo = backend_relay_cmd_helo, .cmd_mail = backend_relay_cmd_mail, diff --git a/src/submission/submission-backend-relay.h b/src/submission/submission-backend-relay.h index ee55dd36d3..f2e2d48daa 100644 --- a/src/submission/submission-backend-relay.h +++ b/src/submission/submission-backend-relay.h @@ -18,6 +18,4 @@ struct submission_backend_relay { void client_proxy_create(struct client *client, const struct submission_settings *set); -uoff_t client_proxy_get_max_mail_size(struct client *client); - #endif diff --git a/src/submission/submission-client.c b/src/submission/submission-client.c index df9cec1353..b9f2502361 100644 --- a/src/submission/submission-client.c +++ b/src/submission/submission-client.c @@ -417,12 +417,6 @@ uoff_t client_get_max_mail_size(struct client *client) max_size = client->set->submission_max_mail_size; if (max_size == 0) max_size = UOFF_T_MAX; - limit = client_proxy_get_max_mail_size(client); - if (limit > SUBMISSION_MAX_ADDITIONAL_MAIL_SIZE) { - limit -= SUBMISSION_MAX_ADDITIONAL_MAIL_SIZE; - if (limit < max_size) - max_size = limit; - } for (backend = client->backends; backend != NULL; backend = backend->next) { limit = submission_backend_get_max_mail_size(backend);