Add an FQY error handler so we don't disconnect if something incorrect was

Sat, 02 May 2009 22:31:13 +0000

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Sat, 02 May 2009 22:31:13 +0000
changeset 27009
67010d886980
parent 27008
1d3c1fe5a59c
child 27010
449372d75256

Add an FQY error handler so we don't disconnect if something incorrect was
sent (unless the server kicked us itself).

References #8588.

libpurple/protocols/msn/notification.c file | annotate | diff | comparison | revisions
--- 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);

mercurial