+Mon Jun 18 23:47:22 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
+
+ * Use SILC_VERIFY to assert that silc_rwlock_wrlock can be
+ called only once per thread on Unix. Affected file is
+ lib/silcutil/unix/silcunixthread.c. Added same for mutex
+ as well. Documented same on the API in
+ lib/silcutil/silcmutex.h.
+
+ * Fixed USERS command reply write-lock unlocking. Affected file
+ is lib/silcclient/command_reply.c.
+
Mon Jun 18 08:14:26 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
* Fixed silc_create_key_pair to check for valid identifier.
if (cmd->error == SILC_STATUS_ERR_NO_SUCH_CHANNEL_ID) {
SilcChannelEntry channel;
- /* Remove unknown client entry from cache */
+ /* Remove unknown channel entry from cache */
if (!silc_argument_get_decoded(args, 2, SILC_ARGUMENT_ID, &id, NULL))
return;
if (cmd->error == SILC_STATUS_ERR_NO_SUCH_SERVER_ID) {
SilcServerEntry server_entry;
- /* Remove unknown client entry from cache */
+ /* Remove unknown server entry from cache */
if (!silc_argument_get_decoded(args, 2, SILC_ARGUMENT_ID, &id, NULL))
return;
if (!silc_client_change_nickname(client, conn, conn->local_entry,
nick, &id.u.client_id, idp, idp_len)) {
ERROR_CALLBACK(SILC_STATUS_ERR_BAD_NICKNAME);
+ silc_rwlock_unlock(conn->local_entry->internal.lock);
goto out;
}
}
}
+ silc_rwlock_unlock(channel->internal.lock);
+
/* Notify application */
silc_hash_table_list(channel->user_list, &htl);
silc_client_command_callback(cmd, channel, &htl);