From: Pekka Riikonen Date: Sat, 18 Oct 2003 08:57:11 +0000 (+0000) Subject: Remove channel key saving callback in del_channel. X-Git-Tag: silc.client.0.9.14~25 X-Git-Url: http://git.silcnet.org/gitweb/?a=commitdiff_plain;h=282e7dcc83b9dfb1ebd12342187210e4e35db83b;p=silc.git Remove channel key saving callback in del_channel. Remove client from channel after signoff notify client operation. --- diff --git a/CHANGES b/CHANGES index 06d20905..c4929953 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,12 @@ +Sat Oct 18 11:55:33 EEST 2003 Pekka Riikonen + + * Unregister channel key saving callback when deleting channel. + Affected file lib/silcclient/idlist.c. + + * Do not remove the client from channels in NOTIFY_TYPE_SIGNOFF + before calling notify client operation. Affected file is + lib/silcclient/client_notify.c. + Tue Oct 14 18:24:53 EEST 2003 Pekka Riikonen * Save old channel keys in list to allow more rapid change diff --git a/lib/silcclient/client_notify.c b/lib/silcclient/client_notify.c index b5387ef3..3a48ac15 100644 --- a/lib/silcclient/client_notify.c +++ b/lib/silcclient/client_notify.c @@ -444,12 +444,6 @@ void silc_client_notify_by_server(SilcClient client, if (!client_entry) goto out; - /* Remove from all channels */ - silc_client_remove_from_channels(client, conn, client_entry); - - /* Remove from cache */ - silc_idcache_del_by_context(conn->internal->client_cache, client_entry); - /* Get signoff message */ tmp = silc_argument_get_arg_type(args, 2, &tmp_len); if (tmp_len > 128) @@ -458,6 +452,12 @@ void silc_client_notify_by_server(SilcClient client, /* Notify application */ client->internal->ops->notify(client, conn, type, client_entry, tmp); + /* Remove from all channels */ + silc_client_remove_from_channels(client, conn, client_entry); + + /* Remove from cache */ + silc_idcache_del_by_context(conn->internal->client_cache, client_entry); + /* Free data */ silc_client_del_client_entry(client, conn, client_entry); break; diff --git a/lib/silcclient/idlist.c b/lib/silcclient/idlist.c index dfdfc6f3..17f3823e 100644 --- a/lib/silcclient/idlist.c +++ b/lib/silcclient/idlist.c @@ -983,6 +983,7 @@ bool silc_client_del_channel(SilcClient client, SilcClientConnection conn, silc_hmac_free(hmac); silc_dlist_uninit(channel->old_hmacs); } + silc_schedule_task_del_by_context(conn->client->schedule, channel); silc_client_del_channel_private_keys(client, conn, channel); silc_free(channel); return ret;