static void _mongoc_stream_tls_secure_transport_destroy (mongoc_stream_t *stream) { mongoc_stream_tls_t *tls = (mongoc_stream_tls_t *) stream; mongoc_stream_tls_secure_transport_t *secure_transport = (mongoc_stream_tls_secure_transport_t *) tls->ctx; ENTRY; BSON_ASSERT (secure_transport); SSLClose (secure_transport->ssl_ctx_ref); CFRelease (secure_transport->ssl_ctx_ref); secure_transport->ssl_ctx_ref = NULL; /* SSLClose will do IO so destroy must come after */ mongoc_stream_destroy (tls->base_stream); if (secure_transport->anchors) { CFRelease (secure_transport->anchors); } if (secure_transport->my_cert) { CFRelease (secure_transport->my_cert); } bson_free (secure_transport); bson_free (stream); mongoc_counter_streams_active_dec (); mongoc_counter_streams_disposed_inc (); EXIT; }
static void _mongoc_stream_gridfs_destroy (mongoc_stream_t *stream) { ENTRY; BSON_ASSERT (stream); mongoc_stream_close (stream); bson_free (stream); mongoc_counter_streams_active_dec (); mongoc_counter_streams_disposed_inc (); EXIT; }
static void mongoc_stream_buffered_destroy (mongoc_stream_t *stream) /* IN */ { mongoc_stream_buffered_t *buffered = (mongoc_stream_buffered_t *)stream; bson_return_if_fail(stream); mongoc_stream_destroy(buffered->base_stream); buffered->base_stream = NULL; _mongoc_buffer_destroy (&buffered->buffer); bson_free(stream); mongoc_counter_streams_active_dec(); mongoc_counter_streams_disposed_inc(); }
static void _mongoc_stream_tls_destroy (mongoc_stream_t *stream) { mongoc_stream_tls_t *tls = (mongoc_stream_tls_t *)stream; BSON_ASSERT (tls); BIO_free_all (tls->bio); tls->bio = NULL; mongoc_stream_destroy (tls->base_stream); tls->base_stream = NULL; SSL_CTX_free (tls->ctx); tls->ctx = NULL; bson_free (stream); mongoc_counter_streams_active_dec(); mongoc_counter_streams_disposed_inc(); }
static void _mongoc_stream_socket_destroy (mongoc_stream_t *stream) { mongoc_stream_socket_t *ss = (mongoc_stream_socket_t *) stream; ENTRY; BSON_ASSERT (ss); if (ss->sock) { mongoc_socket_destroy (ss->sock); ss->sock = NULL; } bson_free (ss); mongoc_counter_streams_active_dec (); mongoc_counter_streams_disposed_inc (); EXIT; }