im.pidgin.pidgin.2.2.2: ba01a475b5298205283309f3c0aaf3dd8d1a54f1

lschiere at pidgin.im lschiere at pidgin.im
Fri Oct 19 17:13:46 EDT 2007


-----------------------------------------------------------------
Revision: ba01a475b5298205283309f3c0aaf3dd8d1a54f1
Ancestor: 523905060b8ebeba354f624c6b7aeb549c597feb
Author: lschiere at pidgin.im
Date: 2007-10-19T17:18:40
Branch: im.pidgin.pidgin.2.2.2

Modified files:
        libpurple/protocols/msn/command.c

ChangeLog: 

This asked me to do a 3way merge in vim.  Someone should check it.

applied changes from 614efd22968bb59c279872f991d97f3053ded4f0
             through cbefbdeb71c4fe12f131d0932abeaf81bea091cb

-------------- next part --------------
============================================================
--- libpurple/protocols/msn/command.c	101a5c45600bfd0151f5a1c2f8f683df92e58288
+++ libpurple/protocols/msn/command.c	b3f2f9c938fd3ebb2f65d211aca00e11d70ee55e
@@ -36,6 +36,52 @@ is_num(char *str)
 	return TRUE;
 }
 
+/*
+ * check the command is the command with payload content
+ *  if it is	return TRUE
+ *  else 		return FALSE
+ */
+static gboolean
+msn_check_payload_cmd(const char *str)
+{
+	g_return_val_if_fail(str != NULL, FALSE);
+	if( (!strcmp(str,"ADL")) ||
+		(!strcmp(str,"GCF")) ||
+		(!strcmp(str,"SG")) ||
+		(!strcmp(str,"MSG")) ||
+		(!strcmp(str,"RML")) ||
+		(!strcmp(str,"UBX")) ||
+		(!strcmp(str,"UBN")) ||
+		(!strcmp(str,"UUM")) ||
+		(!strcmp(str,"UBM")) ||
+		(!strcmp(str,"FQY")) ||
+		(!strcmp(str,"UUN")) ||
+		(!strcmp(str,"UUX")) ||
+		(is_num(str))){
+			return TRUE;
+		}
+
+	return FALSE;
+}
+
+/*
+ * set command Payload length
+ */
+static void
+msn_set_payload_len(MsnCommand *cmd)
+{
+	char *param;
+	int len = 0;
+
+	if (msn_check_payload_cmd(cmd->command) && (cmd->param_count > 0)){
+		param = cmd->params[cmd->param_count - 1];
+		len = is_num(param) ? atoi(param) : 0;
+	}
+
+	cmd->payload_len = len;
+}
+
+
 MsnCommand *
 msn_command_from_string(const char *string)
 {
@@ -70,8 +116,14 @@ msn_command_from_string(const char *stri
 		cmd->trId = is_num(param) ? atoi(param) : 0;
 	}
 	else
+	{
 		cmd->trId = 0;
+	}
 
+	/*add payload Length checking*/
+	msn_set_payload_len(cmd);
+	purple_debug_info("MSNP14","get payload len:%d\n",cmd->payload_len);
+
 	msn_command_ref(cmd);
 
 	return cmd;


More information about the Commits mailing list