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);
}
static struct submission_backend_vfuncs backend_relay_vfuncs = {
+ .destroy = backend_relay_destroy,
+
.cmd_helo = backend_relay_cmd_helo,
.cmd_mail = backend_relay_cmd_mail,
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);
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/",
client->disconnected = TRUE;
timeout_remove(&client->to_quit);
- client_proxy_destroy(client);
submission_backends_destroy_all(client);
if (array_is_created(&client->rcpt_to)) {