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);
|
||||
|
||||
@@ -149,7 +149,7 @@ static void test_reload(struct UASYNC* ua) {
|
||||
|
||||
static void test_headless(struct UASYNC* ua) {
|
||||
char text[1024];
|
||||
snprintf(text, sizeof(text), "[global]\nmy_private_key=%s\nmy_public_key=%s\nclient_type=server\n"
|
||||
snprintf(text, sizeof(text), "[global]\nmy_private_key=%s\nmy_public_key=%s\nclient_type=0\n"
|
||||
"[chatserver]\nheadless_control_bind=127.0.0.1:0\ncall_audio_bind=127.0.0.1:0\nradio_audio_bind=127.0.0.1:0\n",
|
||||
private_key, public_key);
|
||||
struct UTUN_INSTANCE* inst = utun_instance_create_from_str(ua, text); assert(inst && !utun_core_start(inst));
|
||||
|
||||
Reference in new issue
Block a user