Mercurial > hg
changeset 1662:63ebb1d32c7d
Fix for entity capabilities hash generation.
author | Myhailo Danylenko <isbear@ukrpost.net> |
---|---|
date | Sat, 12 Dec 2009 16:23:21 +0200 |
parents | 64a7428afcb3 |
children | dcb0b4522ded |
files | mcabber/src/caps.c |
diffstat | 1 files changed, 8 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/caps.c Mon Dec 07 11:16:03 2009 +0200 +++ b/mcabber/src/caps.c Sat Dec 12 16:23:21 2009 +0200 @@ -144,20 +144,22 @@ gsize digest_size = 20; gchar *hash, *old_hash = NULL; caps *old_caps; - unsigned int i; caps *c = g_hash_table_lookup(caps_cache, ""); g_hash_table_steal(caps_cache, ""); sha1 = g_checksum_new(G_CHECKSUM_SHA1); - identity = g_strdup_printf("%s/%s/%s<", c->category, c->type, c->name); + identity = g_strdup_printf("%s/%s//%s<", c->category, c->type, c->name); g_checksum_update(sha1, (guchar*)identity, -1); g_free(identity); - features = g_list_copy(g_hash_table_get_values(c->features)); + features = g_hash_table_get_values(c->features); features = g_list_sort(features, _strcmp_sort); - for (i=0; i < g_list_length(features); i++) { - g_checksum_update(sha1, g_list_nth_data(features, i), -1); - g_checksum_update(sha1, (guchar *)"<", -1); + { + GList *feature; + for (feature=features; feature; feature=feature->next) { + g_checksum_update(sha1, feature->data, -1); + g_checksum_update(sha1, (guchar *)"<", -1); + } } g_list_free(features);