From: Stephan Bosch Date: Sun, 2 Sep 2018 13:10:08 +0000 (+0200) Subject: submission: Split off closing the relay connection in a separate function. X-Git-Tag: 2.3.9~1324 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8770ef6ad09628e95c61b61a7dc4c5d982a2fce;p=thirdparty%2Fdovecot%2Fcore.git submission: Split off closing the relay connection in a separate function. --- diff --git a/src/submission/submission-client.c b/src/submission/submission-client.c index d874459604..4cd04612e2 100644 --- a/src/submission/submission-client.c +++ b/src/submission/submission-client.c @@ -163,6 +163,12 @@ static void client_proxy_create(struct client *client, set->submission_relay_port, ssl_mode, &smtp_set); } +static void client_proxy_destroy(struct client *client) +{ + if (client->proxy_conn != NULL) + smtp_client_connection_close(&client->proxy_conn); +} + static void client_init_urlauth(struct client *client) { static const char *access_apps[] = { "submit+", NULL }; @@ -281,8 +287,7 @@ void client_destroy(struct client *client, const char *prefix, submission_client_count--; DLLIST_REMOVE(&submission_clients, client); - if (client->proxy_conn != NULL) - smtp_client_connection_close(&client->proxy_conn); + client_proxy_destroy(client); if (client->anvil_sent) { master_service_anvil_send(master_service, t_strconcat( @@ -395,8 +400,7 @@ void client_disconnect(struct client *client, const char *enh_code, client->disconnected = TRUE; timeout_remove(&client->to_quit); - if (client->proxy_conn != NULL) - smtp_client_connection_close(&client->proxy_conn); + client_proxy_destroy(client); if (client->conn != NULL) { const struct smtp_server_stats *stats =