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