diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-05-11 00:35:58 +0100 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-05-11 00:35:58 +0100 |
commit | e73a501ce0cf49d8073d7d25656561400f2aca79 (patch) | |
tree | 84efb87141c557f11355017a4c89e28b1ed0120b | |
parent | 7ee07c3191d1eb21d1d8317f7bfc3d9d98359ab1 (diff) |
Fixed a long-standing bug where non-anonymous Jabber chatrooms could cause
full JIDs to be added to the local contact list, but not removed when
leaving the room, eventually triggering errors like the one in #499. People
kept sending me these dumps and I finally took time to make what turned out
to be this one-line fix.
This error should never appear again unless people are doing really crazy
stuff.
-rw-r--r-- | protocols/jabber/conference.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/protocols/jabber/conference.c b/protocols/jabber/conference.c index f434c58a..affe8aef 100644 --- a/protocols/jabber/conference.c +++ b/protocols/jabber/conference.c @@ -271,8 +271,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 ); } |