Update of /cvsroot/gaim/gaim/src/protocols/jabber
In directory usw-pr-cvs1:/tmp/cvs-serv31971/src/protocols/jabber
Modified Files:
jabber.c
Log Message:
Fix for null-resource JIDs not being handled in .59. (Thanks, Nathan Walp)
Index: jabber.c
===================================================================
RCS file: /cvsroot/gaim/gaim/src/protocols/jabber/jabber.c,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -d -r1.56 -r1.57
--- jabber.c 19 Jun 2002 21:20:08 -0000 1.56
+++ jabber.c 27 Jun 2002 23:24:39 -0000 1.57
@@ -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));
|