fr_io_instance_t const *inst;
fr_io_connection_t *connection;
fr_listen_t *child;
+ fr_io_client_t *parent;
get_inst(li, &inst, NULL, &connection, &child);
if (connection->client->pending) {
TALLOC_FREE(connection->client->pending); /* for any pending packets */
}
+
+ /*
+ * Remove connection from parent hash table
+ */
+ parent = connection->parent;
+ if (parent->ht) {
+ pthread_mutex_lock(&parent->mutex);
+ (void) fr_hash_table_delete(parent->ht, connection);
+ pthread_mutex_unlock(&parent->mutex);
+ }
+
+ /*
+ * Clean up listener
+ */
+ fr_network_listen_delete(connection->nr, child);
+
talloc_free(connection->dl_inst);
return 0;