projects
/
silc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
More client library rewrites.
[silc.git]
/
lib
/
silcclient
/
client_prvmsg.c
diff --git
a/lib/silcclient/client_prvmsg.c
b/lib/silcclient/client_prvmsg.c
index 61c43b621aabf0e2d247bfc72a93e19121038e5c..a4addb359edd0ccf8b8d621a8ff5e0133b060a63 100644
(file)
--- a/
lib/silcclient/client_prvmsg.c
+++ b/
lib/silcclient/client_prvmsg.c
@@
-669,12
+669,17
@@
silc_client_list_private_message_keys(SilcClient client,
if (!client || !conn)
return NULL;
if (!client || !conn)
return NULL;
- if (!silc_idcache_get_all(conn->internal->client_cache, &list))
+ silc_mutex_lock(conn->internal->lock);
+ if (!silc_idcache_get_all(conn->internal->client_cache, &list)) {
+ silc_mutex_unlock(conn->internal->lock);
return NULL;
return NULL;
+ }
keys = silc_calloc(silc_list_count(list), sizeof(*keys));
keys = silc_calloc(silc_list_count(list), sizeof(*keys));
- if (!keys)
+ if (!keys) {
+ silc_mutex_unlock(conn->internal->lock);
return NULL;
return NULL;
+ }
silc_list_start(list);
while ((id_cache = silc_list_get(list))) {
silc_list_start(list);
while ((id_cache = silc_list_get(list))) {
@@
-691,6
+696,8
@@
silc_client_list_private_message_keys(SilcClient client,
}
}
}
}
+ silc_mutex_unlock(conn->internal->lock);
+
if (key_count)
*key_count = count;
if (key_count)
*key_count = count;