diff options
Diffstat (limited to 'toxcore')
-rw-r--r-- | toxcore/group.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/toxcore/group.c b/toxcore/group.c index d5364420..5e070623 100644 --- a/toxcore/group.c +++ b/toxcore/group.c | |||
@@ -524,6 +524,16 @@ int del_groupchat(Group_Chats *g_c, int groupnumber) | |||
524 | if (!g) | 524 | if (!g) |
525 | return -1; | 525 | return -1; |
526 | 526 | ||
527 | unsigned int i; | ||
528 | |||
529 | for (i = 0; i < MAX_GROUP_CONNECTIONS; ++i) { | ||
530 | if (g->close[i].type == GROUPCHAT_CLOSE_NONE) | ||
531 | continue; | ||
532 | |||
533 | g->close[i].type = GROUPCHAT_CLOSE_NONE; | ||
534 | kill_friend_connection(g_c->fr_c, g->close[i].number); | ||
535 | } | ||
536 | |||
527 | free(g->group); | 537 | free(g->group); |
528 | return wipe_group_chat(g_c, groupnumber); | 538 | return wipe_group_chat(g_c, groupnumber); |
529 | } | 539 | } |
@@ -1171,7 +1181,13 @@ void do_groupchats(Group_Chats *g_c) | |||
1171 | /* Free everything related with group chats. */ | 1181 | /* Free everything related with group chats. */ |
1172 | void kill_groupchats(Group_Chats *g_c) | 1182 | void kill_groupchats(Group_Chats *g_c) |
1173 | { | 1183 | { |
1174 | //TODO | 1184 | unsigned int i; |
1185 | |||
1186 | for (i = 0; i < g_c->num_chats; ++i) { | ||
1187 | del_groupchat(g_c, i); | ||
1188 | } | ||
1189 | |||
1190 | m_callback_group_invite(g_c->m, NULL); | ||
1175 | g_c->m->group_chat_object = 0; | 1191 | g_c->m->group_chat_object = 0; |
1176 | free(g_c); | 1192 | free(g_c); |
1177 | } | 1193 | } |