Adium

Ticket #13190 (closed defect: fixed)

Opened 5 months ago

Last modified 5 months ago

failed delivery message is incorrect

Reported by: beej Owned by:
Milestone: Adium 1.4 Component: Adium Core
Version: 1.4b10 Severity: normal
Keywords: Cc:
Patch Status: Initially Included

Description

when Adium attempts to send a message to a contact that it thought was online, but then realizes that is no longer, it displays the text: <user> is no longer online. The following was not sent:

it displays this after the text of the unsent message. at the very least, the text should be corrected to say something like "The prior message was not sent". ideally, the current text would be kept with the unsent message actually following it and the unsent message wouldn't appear as a normal message in the history.

Attachments

Adium Message Send Error.png (23.1 KB) - added by wbowling 5 months ago.
Example with Patch
Current Error.png (17.6 KB) - added by wbowling 5 months ago.
What is currently happening.

Change History

Changed 5 months ago by jas8522

  • status changed from new to pending

Hmm, I thought the last time I received this message, it was in order - something like this would jump out at me. Are you sure it's not related to your message style? Perhaps a screenshot would be handy here.

Changed 5 months ago by wbowling

Same thing is happening for me, original message, error message with colon, then nothing.

Currently libpurple is sending the error message through like:

(from  switchboard.c)

msn_switchboard_report_user(swboard, PURPLE_MESSAGE_ERROR, str_reason); msn_switchboard_report_user(swboard, PURPLE_MESSAGE_RAW, body_str);

Where str_reason is "Message could not be sent because the user is offline:", or similar error, and body_str is the message that failed.

Adium ignores the message body sent to adiumPurpleConvWriteConv as it does not match any of the conditions.

An option would be to just pass PURPLE_MESSAGE_RAW messages straight though as type "libpurpleMessage".

Example patch  bfdbbb6fd385.

Not sure if this is the best way or not, but otherwise the error messages from libpurle don't make sense (ie they have ':' hard coded with nothing following it).

Screen shot added, previously only the first error was shown.

Changed 5 months ago by wbowling

Example with Patch

Changed 5 months ago by jas8522

  • status changed from pending to new
  • patch_status set to Initially Included
  • milestone set to Adium 1.4

Devs: if the suggested patch is acceptable, this may as well be fixed for 1.4. If not, bump to 1.4.x

Changed 5 months ago by zacw

I don't see how this doesn't already take place in 1.4.

Looking at the code path, the suggested path overrides an else path that was taken. In that else path, it should still print the event in the chat. This was added in 1.4 to fix this issue.

Changed 5 months ago by wbowling

Your right, somehow I missed the raw messages already being shown...dont know how, must have beed late :)

But the order still seems to be around the wrong way. They either need to be switched or the colon needs to be stripped of the end.

I guess the current way is by design though, from the comment:

/* We will wait until the next run loop, in case this error message was generated by
* the sending of a message. This allows the results of sending the message to be displayed
* first.
*/

Changed 5 months ago by wbowling

What is currently happening.

Changed 5 months ago by Zachary West <zacw@…>

  • status changed from new to closed
  • resolution set to fixed

(In  165b2bbc8f20) Display unhandled purple conversation writes in the next run loop. Fixes #13190.

Changed 5 months ago by Zachary West <zacw@…>

(In  d88a4b7a70a8) Display unhandled purple conversation writes in the next run loop. Fixes #13190.

Note: See TracTickets for help on using tickets.