aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheJackiMonster <thejackimonster@gmail.com>2023-12-17 00:05:16 +0100
committerTheJackiMonster <thejackimonster@gmail.com>2023-12-17 00:05:16 +0100
commit9cd3c4407929040dcac621a9b5ced8da28488dca (patch)
tree04cc4afd894fe545bf49af3195e1c00341d71c30
parent4855a60d32dd402feec43d5eabc548662579d87d (diff)
downloadgnunet-9cd3c4407929040dcac621a9b5ced8da28488dca.tar.gz
gnunet-9cd3c4407929040dcac621a9b5ced8da28488dca.zip
-fix assert
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
-rw-r--r--src/service/messenger/gnunet-service-messenger_handle.c19
-rw-r--r--src/service/messenger/gnunet-service-messenger_list_handles.c5
-rw-r--r--src/service/messenger/gnunet-service-messenger_service.c6
3 files changed, 15 insertions, 15 deletions
diff --git a/src/service/messenger/gnunet-service-messenger_handle.c b/src/service/messenger/gnunet-service-messenger_handle.c
index c3ae454d3..9cd460fd3 100644
--- a/src/service/messenger/gnunet-service-messenger_handle.c
+++ b/src/service/messenger/gnunet-service-messenger_handle.c
@@ -59,21 +59,21 @@ create_srv_handle (struct GNUNET_MESSENGER_Service *service,
59 59
60 60
61static enum GNUNET_GenericReturnValue 61static enum GNUNET_GenericReturnValue
62iterate_free_values (void *cls, 62iterate_close_rooms (void *cls,
63 const struct GNUNET_HashCode *key, 63 const struct GNUNET_HashCode *key,
64 void *value) 64 void *value)
65{ 65{
66 GNUNET_free (value); 66 struct GNUNET_MESSENGER_SrvHandle *handle = cls;
67 close_service_room (handle->service, handle, key);
67 return GNUNET_YES; 68 return GNUNET_YES;
68} 69}
69 70
70static enum GNUNET_GenericReturnValue 71static enum GNUNET_GenericReturnValue
71iterate_close_rooms (void *cls, 72iterate_free_values (void *cls,
72 const struct GNUNET_HashCode *key, 73 const struct GNUNET_HashCode *key,
73 void *value) 74 void *value)
74{ 75{
75 struct GNUNET_MESSENGER_SrvHandle *handle = cls; 76 GNUNET_free (value);
76 close_service_room (handle->service, handle, key);
77 return GNUNET_YES; 77 return GNUNET_YES;
78} 78}
79 79
@@ -82,6 +82,9 @@ destroy_srv_handle (struct GNUNET_MESSENGER_SrvHandle *handle)
82{ 82{
83 GNUNET_assert (handle); 83 GNUNET_assert (handle);
84 84
85 GNUNET_CONTAINER_multihashmap_iterate (handle->routing,
86 iterate_close_rooms, handle);
87
85 if (handle->notify) 88 if (handle->notify)
86 GNUNET_SCHEDULER_cancel (handle->notify); 89 GNUNET_SCHEDULER_cancel (handle->notify);
87 90
@@ -90,12 +93,6 @@ destroy_srv_handle (struct GNUNET_MESSENGER_SrvHandle *handle)
90 GNUNET_CONTAINER_multihashmap_iterate (handle->member_ids, 93 GNUNET_CONTAINER_multihashmap_iterate (handle->member_ids,
91 iterate_free_values, NULL); 94 iterate_free_values, NULL);
92 95
93 GNUNET_CONTAINER_multihashmap_clear (handle->next_ids);
94 GNUNET_CONTAINER_multihashmap_clear (handle->member_ids);
95
96 GNUNET_CONTAINER_multihashmap_iterate (handle->routing,
97 iterate_close_rooms, handle);
98
99 GNUNET_CONTAINER_multihashmap_destroy (handle->next_ids); 96 GNUNET_CONTAINER_multihashmap_destroy (handle->next_ids);
100 GNUNET_CONTAINER_multihashmap_destroy (handle->member_ids); 97 GNUNET_CONTAINER_multihashmap_destroy (handle->member_ids);
101 GNUNET_CONTAINER_multihashmap_destroy (handle->routing); 98 GNUNET_CONTAINER_multihashmap_destroy (handle->routing);
diff --git a/src/service/messenger/gnunet-service-messenger_list_handles.c b/src/service/messenger/gnunet-service-messenger_list_handles.c
index 5ee6cc159..62427ecde 100644
--- a/src/service/messenger/gnunet-service-messenger_list_handles.c
+++ b/src/service/messenger/gnunet-service-messenger_list_handles.c
@@ -105,8 +105,9 @@ find_list_handle_by_member (const struct GNUNET_MESSENGER_ListHandles *handles,
105 105
106 for (element = handles->head; element; element = element->next) 106 for (element = handles->head; element; element = element->next)
107 { 107 {
108 if (get_srv_handle_member_id (element->handle, key)) 108 if (get_srv_handle_member_id ((struct
109 handle = element->handle; 109 GNUNET_MESSENGER_SrvHandle *) element->handle, key))
110 handle = (struct GNUNET_MESSENGER_SrvHandle *) element->handle;
110 111
111 if ((handle) && (GNUNET_YES == is_srv_handle_routing (handle, key))) 112 if ((handle) && (GNUNET_YES == is_srv_handle_routing (handle, key)))
112 break; 113 break;
diff --git a/src/service/messenger/gnunet-service-messenger_service.c b/src/service/messenger/gnunet-service-messenger_service.c
index 4f56cb472..f55a3bb7b 100644
--- a/src/service/messenger/gnunet-service-messenger_service.c
+++ b/src/service/messenger/gnunet-service-messenger_service.c
@@ -385,8 +385,8 @@ close_service_room (struct GNUNET_MESSENGER_Service *service,
385 if (! room) 385 if (! room)
386 return GNUNET_NO; 386 return GNUNET_NO;
387 387
388 const struct GNUNET_ShortHashCode *id = get_srv_handle_member_id (handle, 388 struct GNUNET_ShortHashCode *id = (struct GNUNET_ShortHashCode*) (
389 key); 389 GNUNET_CONTAINER_multihashmap_get (handle->member_ids, key));
390 390
391 GNUNET_assert (id); 391 GNUNET_assert (id);
392 392
@@ -394,6 +394,8 @@ close_service_room (struct GNUNET_MESSENGER_Service *service,
394 key, id)) 394 key, id))
395 return GNUNET_NO; 395 return GNUNET_NO;
396 396
397 GNUNET_free (id);
398
397 struct GNUNET_MESSENGER_SrvHandle *member_handle = (struct 399 struct GNUNET_MESSENGER_SrvHandle *member_handle = (struct
398 GNUNET_MESSENGER_SrvHandle 400 GNUNET_MESSENGER_SrvHandle
399 *) 401 *)