diff options
Diffstat (limited to 'protocols')
-rw-r--r-- | protocols/jabber/conference.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/protocols/jabber/conference.c b/protocols/jabber/conference.c index 75f3100c..6af7688d 100644 --- a/protocols/jabber/conference.c +++ b/protocols/jabber/conference.c @@ -328,6 +328,9 @@ void jabber_chat_pkt_presence(struct im_connection *ic, struct jabber_buddy *bud } } bud->flags |= JBFLAG_IS_ANONYMOUS; + } else if (bud == jc->me) { + g_free(bud->ext_jid); + bud->ext_jid = g_strdup(jd->me); } if (bud != jc->me && bud->flags & JBFLAG_IS_ANONYMOUS) { @@ -350,11 +353,12 @@ void jabber_chat_pkt_presence(struct im_connection *ic, struct jabber_buddy *bud *s = 0; /* Should NEVER be NULL, but who knows... */ } + imcb_chat_add_buddy(chat, bud->ext_jid); + if (bud != jc->me && (jc->flags & JCFLAG_ALWAYS_USE_NICKS) && !(bud->flags & JBFLAG_IS_ANONYMOUS)) { imcb_buddy_nick_change(ic, bud->ext_jid, bud->resource); } - imcb_chat_add_buddy(chat, bud->ext_jid); if (s) { *s = '/'; } |