diff options
Diffstat (limited to 'src/gnunet_chat_lobby.c')
-rw-r--r-- | src/gnunet_chat_lobby.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/gnunet_chat_lobby.c b/src/gnunet_chat_lobby.c index c6d0327..4887ad8 100644 --- a/src/gnunet_chat_lobby.c +++ b/src/gnunet_chat_lobby.c | |||
@@ -53,6 +53,26 @@ lobby_destroy (struct GNUNET_CHAT_Lobby *lobby) | |||
53 | { | 53 | { |
54 | GNUNET_assert(lobby); | 54 | GNUNET_assert(lobby); |
55 | 55 | ||
56 | if ((!(lobby->op)) && (!(lobby->query))) | ||
57 | goto skip_deletion; | ||
58 | |||
59 | if (lobby->context) | ||
60 | { | ||
61 | const struct GNUNET_HashCode *key = GNUNET_MESSENGER_room_get_key( | ||
62 | lobby->context->room | ||
63 | ); | ||
64 | |||
65 | if (!key) | ||
66 | goto skip_deletion; | ||
67 | |||
68 | char *name; | ||
69 | util_lobby_name(key, &name); | ||
70 | |||
71 | handle_delete_account(lobby->handle, name); | ||
72 | GNUNET_free(name); | ||
73 | } | ||
74 | |||
75 | skip_deletion: | ||
56 | if (lobby->op) | 76 | if (lobby->op) |
57 | GNUNET_IDENTITY_cancel(lobby->op); | 77 | GNUNET_IDENTITY_cancel(lobby->op); |
58 | 78 | ||