From: Stephan Bosch Date: Sat, 15 Sep 2018 12:25:38 +0000 (+0200) Subject: submission: relay backend: Turn client_proxy_destroy() into a relay backend vfunc. X-Git-Tag: 2.3.9~1299 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=029567d73249dedebc5210d97f13a14e8520c625;p=thirdparty%2Fdovecot%2Fcore.git submission: relay backend: Turn client_proxy_destroy() into a relay backend vfunc. --- diff --git a/src/submission/submission-backend-relay.c b/src/submission/submission-backend-relay.c index 3572cb3416..6a848e08b2 100644 --- a/src/submission/submission-backend-relay.c +++ b/src/submission/submission-backend-relay.c @@ -810,9 +810,10 @@ void client_proxy_create(struct client *client, set->submission_relay_port, ssl_mode, &smtp_set); } -void client_proxy_destroy(struct client *client) +static void backend_relay_destroy(struct submission_backend *_backend) { - struct submission_backend_relay *backend = &client->backend; + struct submission_backend_relay *backend = + (struct submission_backend_relay *)_backend; if (backend->conn != NULL) smtp_client_connection_close(&backend->conn); @@ -876,6 +877,8 @@ uoff_t client_proxy_get_max_mail_size(struct client *client) } static struct submission_backend_vfuncs backend_relay_vfuncs = { + .destroy = backend_relay_destroy, + .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 bd2b53ddd0..2f0f2d41a1 100644 --- a/src/submission/submission-backend-relay.h +++ b/src/submission/submission-backend-relay.h @@ -18,7 +18,6 @@ struct submission_backend_relay { void client_proxy_create(struct client *client, const struct submission_settings *set); -void client_proxy_destroy(struct client *client); void client_proxy_start(struct client *client); void client_proxy_input_pre(struct client *client); diff --git a/src/submission/submission-client.c b/src/submission/submission-client.c index 3490656a97..0bf3353a08 100644 --- a/src/submission/submission-client.c +++ b/src/submission/submission-client.c @@ -262,8 +262,6 @@ void client_destroy(struct client *client, const char *prefix, submission_client_count--; DLLIST_REMOVE(&submission_clients, client); - client_proxy_destroy(client); - if (client->anvil_sent) { master_service_anvil_send(master_service, t_strconcat( "DISCONNECT\t", my_pid, "\tsubmission/", @@ -381,7 +379,6 @@ void client_disconnect(struct client *client, const char *enh_code, client->disconnected = TRUE; timeout_remove(&client->to_quit); - client_proxy_destroy(client); submission_backends_destroy_all(client); if (array_is_created(&client->rcpt_to)) {