Mercurial > pidgin.yaz
diff libpurple/protocols/msn/oim.c @ 23535:fd276936164f
Make errors when sending OIM's more visible.
Also, msn_session_report_user doesn't modify msg, so it can be const.
References #5379.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Fri, 20 Jun 2008 05:36:18 +0000 |
parents | 20da64b2e104 |
children | 8fd6a97b9c67 |
line wrap: on
line diff
--- a/libpurple/protocols/msn/oim.c Fri Jun 20 05:15:49 2008 +0000 +++ b/libpurple/protocols/msn/oim.c Fri Jun 20 05:36:18 2008 +0000 @@ -333,6 +333,32 @@ g_queue_push_head(oim->send_queue, msg); msn_oim_send_msg(oim); } + } else { + /* Report the error */ + const char *str_reason; + + if (g_str_equal(faultcode_str, "q0:SystemUnavailable")) { + str_reason = _("Message was not sent because the system is " + "unavailable. This normally happens when the " + "user is blocked or does not exist."); + + } else if (g_str_equal(faultcode_str, "q0:SenderThrottleLimitExceeded")) { + str_reason = _("Message was not sent because messages " + "are being sent too quickly."); + + } else if (g_str_equal(faultcode_str, "q0:InvalidContent")) { + str_reason = _("Message was not sent because an unknown " + "encoding error occured."); + + } else { + str_reason = _("Message was not sent because an unknown " + "error occured."); + } + + msn_session_report_user(oim->session, msg->to_member, + str_reason, PURPLE_MESSAGE_ERROR); + msn_session_report_user(oim->session, msg->to_member, + msg->oim_msg, PURPLE_MESSAGE_RAW); } g_free(faultcode_str);