Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/conference.c

    r49108f3 r9698fc0  
    167167        jabber_buddy_remove_bare(c->ic, jc->name);
    168168
    169         g_free(jc->last_sent_message);
    170169        g_free(jc->my_full_jid);
    171170        g_free(jc->name);
     
    188187
    189188        jabber_cache_add(ic, node, jabber_chat_self_message);
    190 
    191         g_free(jc->last_sent_message);
    192         jc->last_sent_message = g_strdup(message);
    193189
    194190        return !jabber_write_packet(ic, node);
     
    329325                        }
    330326                        bud->flags |= JBFLAG_IS_ANONYMOUS;
    331                 } else if (bud == jc->me) {
    332                         g_free(bud->ext_jid);
    333                         bud->ext_jid = g_strdup(jd->me);
    334327                }
    335328
     
    354347                }
    355348
    356                 imcb_chat_add_buddy(chat, bud->ext_jid);
    357 
    358349                if (bud != jc->me && (jc->flags & JCFLAG_ALWAYS_USE_NICKS) && !(bud->flags & JBFLAG_IS_ANONYMOUS)) {
    359350                        imcb_buddy_nick_change(ic, bud->ext_jid, bud->resource);
    360351                }
    361352
     353                imcb_chat_add_buddy(chat, bud->ext_jid);
    362354                if (s) {
    363355                        *s = '/';
     
    502494                imcb_chat_log(chat, "From conference server: %s", body->text);
    503495                return;
    504         } else if (jc && jc->flags & JCFLAG_MESSAGE_SENT && bud == jc->me) {
    505                 if (jabber_cache_handle_packet(ic, node) == XT_ABORT) {
    506                         /* Self message marked by this bitlbee, don't show it */
    507                         return;
    508                 } else if (xt_find_attr(node, "id") == NULL &&
    509                            g_strcmp0(body->text, jc->last_sent_message) == 0) {
    510                         /* Some misbehaving servers (like slack) eat the ids and echo anyway.
    511                          * Try to detect those cases by comparing against the last sent message. */
    512                         return;
    513                 }
     496        } else if (jc && jc->flags & JCFLAG_MESSAGE_SENT && bud == jc->me &&
     497                   (jabber_cache_handle_packet(ic, node) == XT_ABORT)) {
     498                /* Self message marked by this bitlbee, don't show it */
     499                return;
    514500        }
    515501
Note: See TracChangeset for help on using the changeset viewer.