Ticket #1881 (closed defect: fixed)
jabber group chat history missing messages from self
| Reported by: | ttimo@idsoftware.com | Owned by: | durin42 |
|---|---|---|---|
| Milestone: | Adium X 1.0 | Component: | Service/XMPP (Jabber) |
| Version: | Severity: | normal | |
| Keywords: | Cc: | ||
| Patch Status: |
Description
If you join a jabber group chat that is configured to keep and display recent chat history in the channel, with Adium you get the history of others talking in the group chat, but not your own. For instance if you had a conversation with someone else, all you'll see is the other guy talking in the history log on reconnect.
Attachments
Change History
comment:2 Changed 7 years ago by evands
I'm fairly sure we have no way of distinguishing history messages from non-history... and we suppress messages from self to prevent them from being displayed twice when you send. However, Gaim doesn't duplicate messages as far as I'm aware, so perhaps we should reevaluate how this is implemented.
comment:3 Changed 7 years ago by ttimo@…
When using gaim in the same situation, it only prints self messages when they come back from the server. That is an easy way to tell if you are still connected properly .. if you keep typing and nothing appears back .. something is wrong. ( well, and history printout on join works too )
comment:4 Changed 6 years ago by aeon@…
This is an annoying issue with our internal Jabber server. What I say during the conversation is important if I need to go back and see the flow of the dialogue. I need to be able to see what I said.
Changed 6 years ago by simon@…
-
attachment
GaimConversation.patch
added
Fix for missing history display
comment:5 Changed 6 years ago by simon@…
I think the fix for this is fairly straightforward. The attached change to adiumGaimConversation.m solves this issue for me, although I haven't tested it with non-Jabber protocols.
comment:6 Changed 6 years ago by simon@…
That earlier fix was inadequate. However, further investigation reveals that gaim sets a per message flag GAIM_MESSAGE_DELAYED on all of the messages which are establishing group chat history. These are the only messages which this flag is set for. By conditionalising the GAIM_MESSAGE_SENT checks, it is possible to get Jabber chatroom history, without causing any duplicate messages to appear.
I've got a patch locally, but it will take some untangling from my tree (I've got code to enable GSSAPI support in there, too). If the patch would be useful, and likely to be applied, let me know and I'll dig it out.
Simon.
comment:7 Changed 6 years ago by evands
- field_haspatch set to 0
Sure, that sounds like a good solution and I'd be happy to apply the patch.
comment:8 Changed 6 years ago by evands
With the changed pointed out, it's easy enough to do locally. adiumGaimConversation.m:75, right?
if (!who || (flags & GAIM_MESSAGE_DELAYED) || strcmp(who, gaim_conv_chat_get_nick(GAIM_CONV_CHAT(conv)))) {
comment:10 Changed 6 years ago by evands
- Status changed from new to closed
- Resolution set to fixed
(In [16179]) Fix from simon@… to display Jabber message history in group chats properly even when you were the one who sent it originally. Fixes #1881
Changed 6 years ago by simon@…
-
attachment
JabberHistory.patch
added
Working patch, but needs some further work before committing.
comment:11 Changed 6 years ago by simon@…
- Status changed from closed to reopened
- Resolution fixed deleted
Did you test that fix - I think that a bit more than that is required. In particular, if GAIM_MESSAGE_SEND is set (which it will be, as GAIM_MESSAGE_DELAYED only occurs with GAIM_MESSAGE_SEND), that section of code will never be reached.
I've attached the fix that I'm running with at the moment. Note that this isn't ideal - as I just comment out some of the duplicate checks, rather than special casing them - it should give you an idea where to look, though. I'm away for the next two weeks, but if you haven't had a chance to look at it before then, I'll try and do a proper fix upon my return.
Simon.
comment:12 Changed 6 years ago by evands
- Status changed from reopened to closed
- Resolution set to fixed
comment:13 Changed 6 years ago by isaac@…
- Status changed from closed to reopened
- Resolution fixed deleted
This still does not work for me with the latest beta - possibly a regression (not that I've ever seen it fixed, and I've used every release since the .70's days) from when this was fixed?
Feel free to test on our jabber server - the chat swat@… is open to the public, and will display the behaviour. Works fine in gaim on the same server.
comment:14 Changed 6 years ago by evands
This works fine for me in 1.0b9 (and that code hasn't changed since 1.0b1). isaac, are you sure you were using a 1.0 beta when your test failed?
comment:15 Changed 6 years ago by evands
Ah. If you have a handle set, it works. If you don't, it fails.
comment:16 Changed 6 years ago by bgannin
- Owner changed from nobody to durin42
- Status changed from reopened to new
comment:17 Changed 6 years ago by evands
- Status changed from new to closed
- Resolution set to fixed
(In [17418]) Removed unneeded 'double checks' against messages sent from self... which were messing up display of history messages in Jabber (and other) group chats. Fixes #1881 for real.

