Adium

Opened 14 years ago

Closed 13 years ago

#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 (2)

GaimConversation.patch (772 bytes) - added by simon@… 14 years ago.
Fix for missing history display
JabberHistory.patch (2.5 KB) - added by simon@… 14 years ago.
Working patch, but needs some further work before committing.

Download all attachments as: .zip

Change History (19)

comment:1 Changed 14 years ago by Chris Forsythe

Milestone: Adium X 1.5

comment:2 Changed 14 years ago by Evan Schoenberg

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 14 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 14 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 14 years ago by simon@…

Attachment: GaimConversation.patch added

Fix for missing history display

comment:5 Changed 14 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 14 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 14 years ago by Evan Schoenberg

field_haspatch: 0

Sure, that sounds like a good solution and I'd be happy to apply the patch.

comment:8 Changed 14 years ago by Evan Schoenberg

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:9 Changed 14 years ago by Evan Schoenberg

Milestone: Adium X 1.5Adium X 1.0

comment:10 Changed 14 years ago by Evan Schoenberg

Resolution: fixed
Status: newclosed

(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 14 years ago by simon@…

Attachment: JabberHistory.patch added

Working patch, but needs some further work before committing.

comment:11 Changed 14 years ago by simon@…

Resolution: fixed
Status: closedreopened

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 14 years ago by Evan Schoenberg

Resolution: fixed
Status: reopenedclosed

(In [16280]) Changes based on a patch from simon@… which should properly fix #1881: jabber group chat history missing messages from self. Fixes #1881.

comment:13 Changed 13 years ago by isaac@…

Resolution: fixed
Status: closedreopened

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 13 years ago by Evan Schoenberg

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 13 years ago by Evan Schoenberg

Ah. If you have a handle set, it works. If you don't, it fails.

comment:16 Changed 13 years ago by bgannin

Owner: changed from nobody to Augie Fackler
Status: reopenednew

comment:17 Changed 13 years ago by Evan Schoenberg

Resolution: fixed
Status: newclosed

(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.

Note: See TracTickets for help on using tickets.