From 8c365457656b6e76ee722f0e0456b80375607dd6 Mon Sep 17 00:00:00 2001 From: Simon Schubert Date: Thu, 16 Jul 2009 13:40:12 +0200 Subject: [PATCH] dma: properly close and free SSL connection state --- net.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/net.c b/net.c index bcd3ce5..4a5ded5 100644 --- a/net.c +++ b/net.c @@ -309,6 +309,19 @@ open_connection(struct qitem *it, const char *host) return (fd); } +static void +close_connection(int fd) +{ + if (((config->features & SECURETRANS) != 0) && + ((config->features & NOSSL) == 0)) + SSL_shutdown(config->ssl); + + if (config->ssl != NULL) + SSL_free(config->ssl); + + close(fd); +} + int deliver_remote(struct qitem *it, const char **errmsg) { @@ -469,7 +482,7 @@ deliver_remote(struct qitem *it, const char **errmsg) "QUIT failed: %s", it->queueid, neterr); out: - close(fd); + close_connection(fd); return (error); } -- 2.39.5