Destroying performs cleanups correctly.
i_stream_destroy(&conn->cmd_input);
/* close cmd_output after its parent, so the "." isn't sent */
o_stream_destroy(&conn->cmd_output);
- if (conn->ssl_iostream != NULL)
- ssl_iostream_unref(&conn->ssl_iostream);
+ ssl_iostream_destroy(&conn->ssl_iostream);
io_remove(&conn->io_log);
/* make sure all logs got consumed */
if (conn->log_input != NULL)
if (array_is_created(&conn->request_wait_list))
array_free(&conn->request_wait_list);
- if (conn->ssl_iostream != NULL)
- ssl_iostream_unref(&conn->ssl_iostream);
+ ssl_iostream_destroy(&conn->ssl_iostream);
if (conn->connect_initialized)
connection_deinit(&conn->conn);
io_wait_timer_remove(&conn->io_wait_timer);
http_server_connection_debug(conn, "Connection destroy");
- if (conn->ssl_iostream != NULL)
- ssl_iostream_unref(&conn->ssl_iostream);
+ ssl_iostream_destroy(&conn->ssl_iostream);
connection_deinit(&conn->conn);
if (conn->callbacks != NULL &&
if (conn->parser != NULL)
imap_parser_unref(&conn->parser);
io_remove(&conn->io);
- if (conn->ssl_iostream != NULL)
- ssl_iostream_unref(&conn->ssl_iostream);
+ ssl_iostream_destroy(&conn->ssl_iostream);
if (conn->fd != -1) {
i_stream_destroy(&conn->input);
o_stream_destroy(&conn->output);
timeout_remove(&conn->to_trans);
timeout_remove(&conn->to_commands);
- if (conn->ssl_iostream != NULL)
- ssl_iostream_unref(&conn->ssl_iostream);
+ ssl_iostream_destroy(&conn->ssl_iostream);
if (conn->ssl_ctx != NULL)
ssl_iostream_context_unref(&conn->ssl_ctx);
if (conn->sasl_client != NULL)
io_remove(&client->io);
i_stream_destroy(&client->input);
o_stream_destroy(&client->output);
- if (client->ssl_iostream != NULL)
- ssl_iostream_unref(&client->ssl_iostream);
+ ssl_iostream_destroy(&client->ssl_iostream);
i_close_fd(&client->fd);
while (array_count(&client->commands) > 0)
pop3c_client_async_callback_disconnected(client);