Mercurial > pidgin
changeset 25030:61f37abc8a70
* removing several warnings
* more checking for errors in jabber_caps_client_iqcb()
* preparing another IPC function
author | Tobias Markmann <tfar@soc.pidgin.im> |
---|---|
date | Mon, 07 Jul 2008 18:28:05 +0000 |
parents | 2bf9bf49cea8 |
children | 3f719eaa7fd1 |
files | libpurple/protocols/jabber/caps.c libpurple/protocols/jabber/jabber.c |
diffstat | 2 files changed, 25 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/caps.c Sun Jul 06 21:20:35 2008 +0000 +++ b/libpurple/protocols/jabber/caps.c Mon Jul 07 18:28:05 2008 +0000 @@ -351,7 +351,7 @@ } } #endif - +#if 0 static void jabber_caps_ext_iqcb(JabberStream *js, xmlnode *packet, gpointer data) { /* collect data and fetch all exts */ xmlnode *query = xmlnode_get_child_with_namespace(packet, "query", "http://jabber.org/protocol/disco#info"); @@ -413,13 +413,12 @@ g_free(extuserdata); jabber_caps_get_info_check_completion(userdata); } - +#endif static void jabber_caps_client_iqcb(JabberStream *js, xmlnode *packet, gpointer data) { /* collect data and fetch all exts */ xmlnode *query = xmlnode_get_child_with_namespace(packet, "query", "http://jabber.org/protocol/disco#info"); xmlnode *child; - GList *iter; jabber_caps_cbplususerdata *userdata = data; /* TODO: Better error checking! */ @@ -449,7 +448,7 @@ printf("\n! ! ! invalid hash ! ! !"); return; } - + g_free(hash); JabberCapsValue *value = g_new0(JabberCapsValue, 1); @@ -461,6 +460,13 @@ key->ver = g_strdup(userdata->ver); key->hash = g_strdup(userdata->hash); + /* check whether it's stil not in the table */ + if (g_hash_table_lookup(capstable, key)) { + jabber_caps_destroy_key(key); + g_free(value); + return; + } + for(child = query->child; child; child = child->next) { if(child->type != XMLNODE_TYPE_TAG) @@ -528,10 +534,9 @@ client = g_hash_table_lookup(capstable, key); - //g_free(key); - g_hash_table_replace(jabber_contact_info, g_strdup(who), key); - + g_free(key); + if(!client) { JabberIq *iq = jabber_iq_new_query(js,JABBER_IQ_GET,"http://jabber.org/protocol/disco#info"); xmlnode *query = xmlnode_get_child_with_namespace(iq->node,"query","http://jabber.org/protocol/disco#info"); @@ -629,17 +634,11 @@ } static gint jabber_caps_jabber_xdata_compare(gconstpointer a, gconstpointer b) { - const xmlnode *ac; - const xmlnode *bc; - xmlnode *aformtypefield; - xmlnode *bformtypefield; + const xmlnode *aformtypefield = a; + const xmlnode *bformtypefield = b; char *aformtype; char *bformtype; int result; - - ac = a; - bc = b; - aformtype = jabber_caps_get_formtype(aformtypefield); bformtype = jabber_caps_get_formtype(bformtypefield); @@ -698,7 +697,7 @@ return strcmp(ac->var, bc->var); } -GList *jabber_caps_xdata_get_fields(xmlnode *x) { +GList *jabber_caps_xdata_get_fields(const xmlnode *x) { GList *fields = 0; xmlnode *field; xmlnode *value; @@ -799,7 +798,7 @@ //purple_debug_error("jabber", "Could not find cipher\n"); return 0; } - purple_cipher_context_append(context, verification, strlen(verification)); + purple_cipher_context_append(context, (guchar*)verification, strlen(verification)); if (!purple_cipher_context_digest(context, strlen(verification), checksum, &checksum_size)) { //purple_debug_error("util", "Failed to get digest.\n"); @@ -819,14 +818,8 @@ GList *iter = 0; GList *features = 0; - /* sort identities */ if (jabber_identities == 0 && jabber_features == 0) return; - if (jabber_identities) { - for (iter = jabber_identities; iter; iter = iter->next) { - JabberIdentity *ident = iter->data; - } - } - + /* sort features */ if (jabber_features) { for (iter = jabber_features; iter; iter = iter->next) {
--- a/libpurple/protocols/jabber/jabber.c Sun Jul 06 21:20:35 2008 +0000 +++ b/libpurple/protocols/jabber/jabber.c Mon Jul 07 18:28:05 2008 +0000 @@ -2473,6 +2473,14 @@ return TRUE; } +static void +jabber_ipc_add_feature(gchar *feature) +{ + if (feature == 0) return; + + jabber_add_feature(feature, 0); +} + void jabber_init_plugin(PurplePlugin *plugin) {