diff options
Diffstat (limited to 'protocols/jabber/conference.c')
| -rw-r--r-- | protocols/jabber/conference.c | 10 | 
1 files changed, 7 insertions, 3 deletions
| diff --git a/protocols/jabber/conference.c b/protocols/jabber/conference.c index f434c58a..e04b9792 100644 --- a/protocols/jabber/conference.c +++ b/protocols/jabber/conference.c @@ -91,18 +91,20 @@ static xt_status jabber_chat_join_failed( struct im_connection *ic, struct xt_no  struct groupchat *jabber_chat_by_jid( struct im_connection *ic, const char *name )  {  	char *normalized = jabber_normalize( name ); +	GSList *l;  	struct groupchat *ret;  	struct jabber_chat *jc; -	for( ret = ic->groupchats; ret; ret = ret->next ) +	for( l = ic->groupchats; l; l = l->next )  	{ +		ret = l->data;  		jc = ret->data;  		if( strcmp( normalized, jc->name ) == 0 )  			break;  	}  	g_free( normalized ); -	return ret; +	return l ? ret : NULL;  }  void jabber_chat_free( struct groupchat *c ) @@ -271,8 +273,10 @@ void jabber_chat_pkt_presence( struct im_connection *ic, struct jabber_buddy *bu  			bud->flags |= JBFLAG_IS_ANONYMOUS;  		} -		if( bud != jc->me ) +		if( bud != jc->me && bud->flags & JBFLAG_IS_ANONYMOUS )  		{ +			/* If JIDs are anonymized, add them to the local +			   list for the duration of this chat. */  			imcb_add_buddy( ic, bud->ext_jid, NULL );  			imcb_buddy_nick_hint( ic, bud->ext_jid, bud->resource );  		} | 
