# HG changeset patch # User Jim Seymour # Date 1025220279 0 # Node ID e77fcff466a1b3092b552497c4d7de07390d2c4c # Parent cb570d1bb87b49aa8d361e266e4a80366665d189 [gaim-migrate @ 3356] Fix for null-resource JIDs not being handled in .59. (Thanks, Nathan Walp) committer: Tailor Script diff -r cb570d1bb87b -r e77fcff466a1 src/protocols/jabber/jabber.c --- a/src/protocols/jabber/jabber.c Tue Jun 25 04:14:38 2002 +0000 +++ b/src/protocols/jabber/jabber.c Thu Jun 27 23:24:39 2002 +0000 @@ -1022,7 +1022,7 @@ } else if(!res) { /* we're looking for the default priority, so... */ if(((jab_res_info) resources->data)->priority >= jri->priority) jri = (jab_res_info) resources->data; - } else { + } else if(((jab_res_info)resources->data)->name) { if(!strcasecmp(((jab_res_info) resources->data)->name, res)) { jri = (jab_res_info) resources->data; break; @@ -1046,9 +1046,14 @@ { struct jabber_buddy_data *jbd = jabber_find_buddy(gc, buddy); - if(jbd && res) { - char *who = g_strdup_printf("%s/%s", buddy, res); - jab_res_info jri = jabber_find_resource(gc, who); + if(jbd) { + char *who; + jab_res_info jri; + if(res) + who = g_strdup_printf("%s/%s", buddy, res); + else + who = g_strdup(buddy); + jri = jabber_find_resource(gc, who); g_free(who); if(!jri) { jri = g_new0(struct jabber_resource_info, 1); @@ -1067,12 +1072,18 @@ static void jabber_remove_resource(struct gaim_connection *gc, char *buddy, char *res) { struct jabber_buddy_data *jbd = jabber_find_buddy(gc, buddy); - if(jbd && res) { - char *who = g_strdup_printf("%s/%s", buddy, res); - jab_res_info jri = jabber_find_resource(gc, who); + if(jbd) { + char *who; + jab_res_info jri; + if(res) + who = g_strdup_printf("%s/%s", buddy, res); + else + who = g_strdup(buddy); + jri = jabber_find_resource(gc, who); g_free(who); if(jri) { - g_free(jri->name); + if(jri->name) + g_free(jri->name); if(jri->away_msg) g_free(jri->away_msg); jbd->resources = g_slist_remove(jbd->resources, jri); @@ -1102,7 +1113,7 @@ char *msg = NULL; jab_res_info jri = NULL; - if(!p || !p->from || !p->from->resource || !p->from->user) + if(!p || !p->from || !p->from->user) return; jri = jabber_find_resource(GJ_GC(gjc), jid_full(p->from));