Changes in protocols/jabber/conference.c [9698fc0:49108f3]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/jabber/conference.c
r9698fc0 r49108f3 167 167 jabber_buddy_remove_bare(c->ic, jc->name); 168 168 169 g_free(jc->last_sent_message); 169 170 g_free(jc->my_full_jid); 170 171 g_free(jc->name); … … 187 188 188 189 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); 189 193 190 194 return !jabber_write_packet(ic, node); … … 325 329 } 326 330 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); 327 334 } 328 335 … … 347 354 } 348 355 356 imcb_chat_add_buddy(chat, bud->ext_jid); 357 349 358 if (bud != jc->me && (jc->flags & JCFLAG_ALWAYS_USE_NICKS) && !(bud->flags & JBFLAG_IS_ANONYMOUS)) { 350 359 imcb_buddy_nick_change(ic, bud->ext_jid, bud->resource); 351 360 } 352 361 353 imcb_chat_add_buddy(chat, bud->ext_jid);354 362 if (s) { 355 363 *s = '/'; … … 494 502 imcb_chat_log(chat, "From conference server: %s", body->text); 495 503 return; 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; 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 } 500 514 } 501 515
Note: See TracChangeset
for help on using the changeset viewer.