# HG changeset patch # User Elliott Sales de Andrade # Date 1241303473 0 # Node ID 0c077a605b8a8340b68bead8b9eedbffe2572e52 # Parent 2a3019c06631e532f81ca3f09cf96993f0433fc0 Add an FQY error handler so we don't disconnect if something incorrect was sent (unless the server kicked us itself). References #8588. diff -r 2a3019c06631 -r 0c077a605b8a libpurple/protocols/msn/notification.c --- a/libpurple/protocols/msn/notification.c Sat May 02 21:13:02 2009 +0000 +++ b/libpurple/protocols/msn/notification.c Sat May 02 22:31:13 2009 +0000 @@ -914,6 +914,26 @@ } static void +fqy_error_parse(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, size_t len) +{ + purple_debug_warning("msn", "FQY error %d: %s\n", + GPOINTER_TO_INT(cmd->payload_cbdata), payload); +} + +static void +fqy_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error) +{ + MsnCommand *cmd = cmdproc->last_cmd; + + purple_debug_error("msn", "FQY error %d\n", error); + if (cmd->param_count > 1) { + cmd->payload_cb = fqy_error_parse; + cmd->payload_len = atoi(cmd->params[1]); + cmd->payload_cbdata = GINT_TO_POINTER(error); + } +} + +static void fqy_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, size_t len) { @@ -2153,6 +2173,7 @@ msn_table_add_error(cbs_table, "ADD", add_error); msn_table_add_error(cbs_table, "ADL", adl_error); + msn_table_add_error(cbs_table, "FQY", fqy_error); msn_table_add_error(cbs_table, "REG", reg_error); msn_table_add_error(cbs_table, "RMG", rmg_error); msn_table_add_error(cbs_table, "USR", usr_error);