Mercurial > pidgin
diff libpurple/protocols/msn/notification.c @ 24267:e473291375b4
Apply khc's patch for ADL error 205, with a few changes to get around
string freeze. This should allow people to login for this release since
I removed the previous workaround.
References #6640.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Sun, 19 Oct 2008 05:45:16 +0000 |
parents | 345ed41d807b |
children | 32e5515232b9 |
line wrap: on
line diff
--- a/libpurple/protocols/msn/notification.c Thu Oct 02 05:37:38 2008 +0000 +++ b/libpurple/protocols/msn/notification.c Sun Oct 19 05:45:16 2008 +0000 @@ -753,21 +753,46 @@ } static void +adl_error_parse(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, size_t len) +{ + MsnSession *session; + PurpleAccount *account; + PurpleConnection *gc; + /*char *adl = g_strndup(payload, len);*/ + char *reason = g_strdup_printf(_("Unknown error (%d)"), + GPOINTER_TO_INT(cmd->payload_cbdata)/*, adl*/); + /*g_free(adl);*/ + + session = cmdproc->session; + account = session->account; + gc = purple_account_get_connection(account); + + purple_notify_error(gc, NULL, _("Unable to add user"), reason); + g_free(reason); +} + +static void adl_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error) { MsnSession *session; PurpleAccount *account; PurpleConnection *gc; - char *reason = NULL; + MsnCommand *cmd = cmdproc->last_cmd; session = cmdproc->session; account = session->account; gc = purple_account_get_connection(account); purple_debug_error("msn", "ADL error\n"); - reason = g_strdup_printf(_("Unknown error (%d)"), error); - purple_notify_error(gc, NULL, _("Unable to add user"), reason); - g_free(reason); + if (cmd->param_count > 1) { + cmd->payload_cb = adl_error_parse; + cmd->payload_len = atoi(cmd->params[1]); + cmd->payload_cbdata = GINT_TO_POINTER(error); + } else { + char *reason = g_strdup_printf(_("Unknown error (%d)"), error); + purple_notify_error(gc, NULL, _("Unable to add user"), reason); + g_free(reason); + } } static void