diff libgaim/protocols/msn/oim.c @ 20391:0b0ecee55091

The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung. "new version, fixes some crashes because group_id is char * but in some places it's set to an int (!). skadotnet, I don't understand why you need `if (!strcmp(type, "MFN")) {` in so many places, so I didn't include most of them. I also have different versions of some of your fixes because I already fixed them. Group manipulations may still not work, at least it's not crashing :-)" committer: Richard Laager <rlaager@wiktel.com>
author Ka-Hing Cheung <khc@hxbc.us>
date Sun, 15 Apr 2007 02:43:47 +0000
parents d634f88e25d8
children 9ba7dee775e1
line wrap: on
line diff
--- a/libgaim/protocols/msn/oim.c	Sun Apr 15 02:18:17 2007 +0000
+++ b/libgaim/protocols/msn/oim.c	Sun Apr 15 02:43:47 2007 +0000
@@ -30,9 +30,18 @@
 
 /*Local Function Prototype*/
 static void msn_oim_post_single_get_msg(MsnOim *oim,const char *msgid);
-void msn_oim_retrieve_connect_init(MsnSoapConn *soapconn);
-void msn_oim_send_connect_init(MsnSoapConn *soapconn);
-void msn_oim_free_send_req(MsnOimSendReq *req);
+static MsnOimSendReq *msn_oim_new_send_req(const char *from_member,
+										   const char *friendname,
+										   const char* to_member,
+										   gint send_seq,
+										   const char *msg);
+static void msn_oim_retrieve_connect_init(MsnSoapConn *soapconn);
+static void msn_oim_send_connect_init(MsnSoapConn *soapconn);
+static void msn_oim_free_send_req(MsnOimSendReq *req);
+static void msn_oim_report_to_user(MsnOim *oim, char *msg_str);
+static void msn_oim_get_process(MsnOim *oim, char *oim_msg);
+static char *msn_oim_msg_to_str(MsnOim *oim, const char *body);
+const void msn_oim_send_process(MsnOim *oim, const char *body, int len);
 
 /*new a OIM object*/
 MsnOim *
@@ -73,11 +82,10 @@
 	g_free(oim);
 }
 
-MsnOimSendReq *
-msn_oim_new_send_req(char *from_member,
-				char*friendname,char* to_member,
-				gint send_seq,
-				char *msg)
+static MsnOimSendReq *
+msn_oim_new_send_req(const char *from_member, const char*friendname,
+					 const char* to_member, gint send_seq,
+					 const char *msg)
 {
 	MsnOimSendReq *request;
 	
@@ -90,7 +98,7 @@
 	return request;
 }
 
-void
+static void
 msn_oim_free_send_req(MsnOimSendReq *req)
 {
 	g_return_if_fail(req != NULL);
@@ -107,8 +115,8 @@
  * OIM send SOAP request
  * **************************************/
 /*encode the message to OIM Message Format*/
-char * 
-msn_oim_msg_to_str(MsnOim *oim,char *body)
+static char *
+msn_oim_msg_to_str(MsnOim *oim, const char *body)
 {
 	char *oim_body,*oim_base64;
 	
@@ -154,14 +162,13 @@
  * Process the send return SOAP string
  * If got SOAP Fault,get the lock key,and resend it.
  */
-void
-msn_oim_send_process(MsnOim *oim,char *body,int len)
+const void
+msn_oim_send_process(MsnOim *oim, const char *body, int len)
 {
-	xmlnode *responseNode,*bodyNode;
-	xmlnode	*faultNode,*faultCodeNode,*faultstringNode;
-	xmlnode *detailNode,*challengeNode;
-	char *faultCodeStr,*faultstring;
-	char *challenge;
+	xmlnode *responseNode, *bodyNode;
+	xmlnode	*faultNode, *faultCodeNode, *faultstringNode;
+	xmlnode *detailNode, *challengeNode;
+	char *faultCodeStr, *faultstring;
 
 	responseNode = xmlnode_from_str(body,len);
 	g_return_if_fail(responseNode != NULL);
@@ -245,9 +252,9 @@
 }
 
 void
-msn_oim_prep_send_msg_info(MsnOim *oim,
-					char *membername,char*friendname,char *tomember,
-					char * msg)
+msn_oim_prep_send_msg_info(MsnOim *oim, const char *membername,
+						   const char* friendname, const char *tomember,
+						   const char * msg)
 {
 	MsnOimSendReq *request;
 
@@ -324,7 +331,6 @@
 				 GaimInputCondition cond)
 {
 	MsnSoapConn * soapconn = data;	
-	MsnOim * oim = soapconn->session->oim;
 
 	gaim_debug_info("MaYuan","OIM delete read buffer:{%s}\n",soapconn->body);
 
@@ -404,8 +410,8 @@
 }
 
 /*Post the Offline Instant Message to User Conversation*/
-void
-msn_oim_report_to_user(MsnOim *oim,char *msg_str)
+static void
+msn_oim_report_to_user(MsnOim *oim, char *msg_str)
 {
 	MsnMessage *message;
 	char *date,*from,*decode_msg;
@@ -413,13 +419,13 @@
 	char **tokens;
 	char *start,*end;
 	int has_nick = 0;
-	char *passport_str,*passport;
+	char *passport_str, *passport;
 	char *msg_id;
 
 	message = msn_message_new(MSN_MSG_UNKNOWN);
 
-	msn_message_parse_payload(message,msg_str,strlen(msg_str),
-					MSG_OIM_LINE_DEM, MSG_OIM_BODY_DEM);
+	msn_message_parse_payload(message, msg_str, strlen(msg_str),
+							  MSG_OIM_LINE_DEM, MSG_OIM_BODY_DEM);
 	gaim_debug_info("MaYuan","oim body:{%s}\n",message->body);
 	decode_msg = gaim_base64_decode(message->body,&body_len);
 	date =	(char *)g_hash_table_lookup(message->attr_table, "Date");
@@ -463,8 +469,8 @@
 /* Parse the XML data,
  * prepare to report the OIM to user
  */
-void
-msn_oim_get_process(MsnOim *oim,char *oim_msg)
+static void
+msn_oim_get_process(MsnOim *oim, char *oim_msg)
 {
 	xmlnode *oimNode,*bodyNode,*responseNode,*msgNode;
 	char *msg_data,*msg_str;
@@ -569,7 +575,7 @@
 }
 
 /*msn oim retrieve server connect init */
-void
+static void
 msn_oim_retrieve_connect_init(MsnSoapConn *soapconn)
 {
 	gaim_debug_info("MaYuan","msn_oim_connect...\n");
@@ -579,7 +585,8 @@
 }
 
 /*Msn OIM Send Server Connect Init Function*/
-void msn_oim_send_connect_init(MsnSoapConn *sendconn)
+static void
+msn_oim_send_connect_init(MsnSoapConn *sendconn)
 {
 	gaim_debug_info("MaYuan","msn oim send connect init...\n");
 	msn_soap_init(sendconn,MSN_OIM_SEND_HOST,1,