Release remaining transport subscriptions at instance destruction
This commit is contained in:
1 parent
1d92591780
commit
fd93f39c78
2 files changed
+18
-1
No files matched your search
@@ -624,6 +624,23 @@ static void instance_destroy(struct UTUN_INSTANCE* instance, int owns_config) {
|
||||
DEBUG_INFO(DEBUG_CATEGORY_SYS, "[INSTANCE_DESTROY] Freeing instance memory");
|
||||
|
||||
// Cleanup nodeinfo callback chain
|
||||
while (instance->new_conn_cbks) {
|
||||
struct etcp_inst_cbk_entry* entry = instance->new_conn_cbks;
|
||||
instance->new_conn_cbks = entry->next; u_free(entry);
|
||||
}
|
||||
while (instance->link_status_cbks) {
|
||||
struct etcp_link_status_cbk_entry* entry = instance->link_status_cbks;
|
||||
instance->link_status_cbks = entry->next; u_free(entry);
|
||||
}
|
||||
while (instance->conn_status_cbks) {
|
||||
struct etcp_status_cbk_entry* entry = instance->conn_status_cbks;
|
||||
instance->conn_status_cbks = entry->next; u_free(entry);
|
||||
}
|
||||
while (instance->socket_cbks) {
|
||||
struct etcp_socket_cbk_entry* entry = instance->socket_cbks;
|
||||
instance->socket_cbks = entry->next; u_free(entry);
|
||||
}
|
||||
DEBUG_DEBUG(DEBUG_CATEGORY_SYS, "instance transport subscriptions released");
|
||||
while (instance->nodeinfo_cbks) {
|
||||
struct nodeinfo_cbk_entry* r = instance->nodeinfo_cbks;
|
||||
instance->nodeinfo_cbks = r->next; u_free(r);
|
||||
|
||||
Reference in new issue
Block a user