libpurple/protocols/msn/oim.c

Sun, 09 Sep 2007 00:43:22 +0000

author
Sadrul Habib Chowdhury <sadrul@pidgin.im>
date
Sun, 09 Sep 2007 00:43:22 +0000
branch
cpw.khc.msnp14
changeset 20578
82571739414b
parent 20573
d4d5f8079126
child 20581
5003206c0c23
permissions
-rw-r--r--

Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
g_free.

20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
1 /**
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
2 * @file oim.c
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
3 * get and send MSN offline Instant Message via SOAP request
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
4 * Author
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
5 * MaYuan<mayuan2006@gmail.com>
20484
4a410a579a80 Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents: 20481
diff changeset
6 * purple
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
7 *
20484
4a410a579a80 Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents: 20481
diff changeset
8 * Purple is the legal property of its developers, whose names are too numerous
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
9 * to list here. Please refer to the COPYRIGHT file distributed with this
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
10 * source distribution.
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
11 *
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
12 * This program is free software; you can redistribute it and/or modify
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
13 * it under the terms of the GNU General Public License as published by
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
14 * the Free Software Foundation; either version 2 of the License, or
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
15 * (at your option) any later version.
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
16 *
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
17 * This program is distributed in the hope that it will be useful,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
20 * GNU General Public License for more details.
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
21 *
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
22 * You should have received a copy of the GNU General Public License
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
23 * along with this program; if not, write to the Free Software
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
25 */
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
26 #include "msn.h"
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
27 #include "soap.h"
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
28 #include "oim.h"
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
29 #include "msnutils.h"
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
30
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
31 /*Local Function Prototype*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
32 static void msn_oim_post_single_get_msg(MsnOim *oim,const char *msgid);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
33 static MsnOimSendReq *msn_oim_new_send_req(const char *from_member,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
34 const char *friendname,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
35 const char* to_member,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
36 gint send_seq,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
37 const char *msg);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
38 static void msn_oim_retrieve_connect_init(MsnSoapConn *soapconn);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
39 static void msn_oim_send_connect_init(MsnSoapConn *soapconn);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
40 static void msn_oim_free_send_req(MsnOimSendReq *req);
20573
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
41 static void msn_oim_report_to_user(MsnOim *oim, const char *msg_str);
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
42 static void msn_oim_get_process(MsnOim *oim, const char *oim_msg);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
43 static char *msn_oim_msg_to_str(MsnOim *oim, const char *body);
20513
351eb76ee992 Compile warning fixes
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20485
diff changeset
44 static void msn_oim_send_process(MsnOim *oim, const char *body, int len);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
45
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
46 /*new a OIM object*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
47 MsnOim *
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
48 msn_oim_new(MsnSession *session)
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
49 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
50 MsnOim *oim;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
51
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
52 oim = g_new0(MsnOim, 1);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
53 oim->session = session;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
54 oim->retrieveconn = msn_soap_new(session,oim,1);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
55
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
56 oim->oim_list = NULL;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
57 oim->sendconn = msn_soap_new(session,oim,1);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
58 oim->run_id = rand_guid();
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
59 oim->challenge = NULL;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
60 oim->send_queue = g_queue_new();
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
61 oim->send_seq = 1;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
62 return oim;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
63 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
64
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
65 /*destroy the oim object*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
66 void
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
67 msn_oim_destroy(MsnOim *oim)
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
68 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
69 MsnOimSendReq *request;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
70
20484
4a410a579a80 Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents: 20481
diff changeset
71 purple_debug_info("OIM","destroy the OIM \n");
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
72 msn_soap_destroy(oim->retrieveconn);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
73 msn_soap_destroy(oim->sendconn);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
74 g_free(oim->run_id);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
75 g_free(oim->challenge);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
76
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
77 while((request = g_queue_pop_head(oim->send_queue)) != NULL){
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
78 msn_oim_free_send_req(request);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
79 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
80 g_queue_free(oim->send_queue);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
81
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
82 g_free(oim);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
83 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
84
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
85 static MsnOimSendReq *
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
86 msn_oim_new_send_req(const char *from_member, const char*friendname,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
87 const char* to_member, gint send_seq,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
88 const char *msg)
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
89 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
90 MsnOimSendReq *request;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
91
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
92 request = g_new0(MsnOimSendReq, 1);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
93 request->from_member =g_strdup(from_member);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
94 request->friendname = g_strdup(friendname);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
95 request->to_member = g_strdup(to_member);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
96 request->send_seq = send_seq;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
97 request->oim_msg = g_strdup(msg);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
98 return request;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
99 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
100
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
101 static void
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
102 msn_oim_free_send_req(MsnOimSendReq *req)
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
103 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
104 g_return_if_fail(req != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
105
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
106 g_free(req->from_member);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
107 g_free(req->friendname);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
108 g_free(req->to_member);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
109 g_free(req->oim_msg);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
110
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
111 g_free(req);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
112 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
113
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
114 /****************************************
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
115 * OIM send SOAP request
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
116 * **************************************/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
117 /*encode the message to OIM Message Format*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
118 static char *
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
119 msn_oim_msg_to_str(MsnOim *oim, const char *body)
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
120 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
121 char *oim_body,*oim_base64;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
122
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
123 purple_debug_info("MSNP14","encode OIM Message...\n");
20484
4a410a579a80 Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents: 20481
diff changeset
124 oim_base64 = purple_base64_encode((const guchar *)body, strlen(body));
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
125 purple_debug_info("MSNP14","encoded base64 body:{%s}\n",oim_base64);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
126 oim_body = g_strdup_printf(MSN_OIM_MSG_TEMPLATE,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
127 oim->run_id,oim->send_seq,oim_base64);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
128
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
129 return oim_body;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
130 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
131
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
132 /*oim SOAP server login error*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
133 static void
20484
4a410a579a80 Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents: 20481
diff changeset
134 msn_oim_send_error_cb(PurpleSslConnection *gsc, PurpleSslErrorType error, void *data)
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
135 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
136 MsnSoapConn *soapconn = data;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
137 MsnSession *session;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
138
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
139 session = soapconn->session;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
140 g_return_if_fail(session != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
141
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
142 msn_session_set_error(session, MSN_ERROR_SERV_DOWN, _("Unable to connect to OIM server"));
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
143 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
144
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
145 /*msn oim SOAP server connect process*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
146 static void
20484
4a410a579a80 Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents: 20481
diff changeset
147 msn_oim_send_connect_cb(gpointer data, PurpleSslConnection *gsc,
4a410a579a80 Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents: 20481
diff changeset
148 PurpleInputCondition cond)
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
149 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
150 MsnSoapConn *soapconn = data;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
151 MsnSession * session;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
152 MsnOim *oim;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
153
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
154 oim = soapconn->parent;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
155 g_return_if_fail(oim != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
156
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
157 session = oim->session;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
158 g_return_if_fail(session != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
159 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
160
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
161 /*
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
162 * Process the send return SOAP string
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
163 * If got SOAP Fault,get the lock key,and resend it.
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
164 */
20513
351eb76ee992 Compile warning fixes
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20485
diff changeset
165 static void
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
166 msn_oim_send_process(MsnOim *oim, const char *body, int len)
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
167 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
168 xmlnode *responseNode, *bodyNode;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
169 xmlnode *faultNode, *faultCodeNode, *faultstringNode;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
170 xmlnode *detailNode, *challengeNode;
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20573
diff changeset
171 char *faultCodeStr = NULL, *faultstring = NULL;
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
172
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
173 responseNode = xmlnode_from_str(body,len);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
174 g_return_if_fail(responseNode != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
175 bodyNode = xmlnode_get_child(responseNode,"Body");
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
176 faultNode = xmlnode_get_child(bodyNode,"Fault");
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
177 if(faultNode == NULL){
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
178 /*Send OK! return*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
179 MsnOimSendReq *request;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
180
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
181 purple_debug_info("MSNP14","send OIM OK!");
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
182 xmlnode_free(responseNode);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
183 request = g_queue_pop_head(oim->send_queue);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
184 msn_oim_free_send_req(request);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
185 /*send next buffered Offline Message*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
186 msn_soap_post(oim->sendconn,NULL,msn_oim_send_connect_init);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
187 return;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
188 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
189 /*get the challenge,and repost it*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
190 faultCodeNode = xmlnode_get_child(faultNode,"faultcode");
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
191 if(faultCodeNode == NULL){
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
192 purple_debug_info("MSNP14","faultcode Node is NULL\n");
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
193 goto oim_send_process_fail;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
194 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
195 faultCodeStr = xmlnode_get_data(faultCodeNode);
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
196 purple_debug_info("MSNP14","fault code:{%s}\n",faultCodeStr);
20573
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
197 #if 0
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
198 if(!strcmp(faultCodeStr,"q0:AuthenticationFailed")){
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
199 /*other Fault Reason?*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
200 goto oim_send_process_fail;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
201 }
20573
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
202 #endif
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
203
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
204 faultstringNode = xmlnode_get_child(faultNode,"faultstring");
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
205 faultstring = xmlnode_get_data(faultstringNode);
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
206 purple_debug_info("MSNP14","fault string :{%s}\n",faultstring);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
207
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
208 /* lock key fault reason,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
209 * compute the challenge and resend it
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
210 */
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
211 detailNode = xmlnode_get_child(faultNode, "detail");
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
212 if(detailNode == NULL){
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
213 goto oim_send_process_fail;
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
214 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
215 challengeNode = xmlnode_get_child(detailNode,"LockKeyChallenge");
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
216 if (challengeNode == NULL) {
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
217 goto oim_send_process_fail;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
218 }
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
219
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
220 g_free(oim->challenge);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
221 oim->challenge = xmlnode_get_data(challengeNode);
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
222 purple_debug_info("MSNP14","lockkey:{%s}\n",oim->challenge);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
223
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
224 /*repost the send*/
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
225 purple_debug_info("MSNP14","prepare to repost the send...\n");
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
226 msn_oim_send_msg(oim);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
227
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
228 oim_send_process_fail:
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20573
diff changeset
229 g_free(faultstring);
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20573
diff changeset
230 g_free(faultCodeStr);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
231 xmlnode_free(responseNode);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
232 return ;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
233 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
234
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
235 static void
20513
351eb76ee992 Compile warning fixes
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20485
diff changeset
236 msn_oim_send_read_cb(gpointer data, gint source, PurpleInputCondition cond)
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
237 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
238 MsnSoapConn * soapconn = data;
20513
351eb76ee992 Compile warning fixes
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20485
diff changeset
239 MsnSession *session = soapconn->session;
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
240 MsnOim * oim;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
241
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
242 g_return_if_fail(session != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
243 oim = soapconn->session->oim;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
244 g_return_if_fail(oim != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
245
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
246 purple_debug_info("MSNP14","read buffer:{%s}\n",soapconn->body);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
247 msn_oim_send_process(oim,soapconn->body,soapconn->body_len);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
248 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
249
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
250 static void
20484
4a410a579a80 Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents: 20481
diff changeset
251 msn_oim_send_written_cb(gpointer data, gint source, PurpleInputCondition cond)
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
252 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
253 MsnSoapConn * soapconn = data;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
254
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
255 soapconn->read_cb = msn_oim_send_read_cb;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
256 // msn_soap_read_cb(data,source,cond);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
257 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
258
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
259 void
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
260 msn_oim_prep_send_msg_info(MsnOim *oim, const char *membername,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
261 const char* friendname, const char *tomember,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
262 const char * msg)
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
263 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
264 MsnOimSendReq *request;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
265
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
266 g_return_if_fail(oim != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
267
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
268 request = msn_oim_new_send_req(membername,friendname,tomember,oim->send_seq,msg);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
269 g_queue_push_tail(oim->send_queue,request);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
270 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
271
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
272 /*post send single message request to oim server*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
273 void
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
274 msn_oim_send_msg(MsnOim *oim)
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
275 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
276 MsnSoapReq *soap_request;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
277 MsnOimSendReq *oim_request;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
278 char *soap_body,*mspauth;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
279 char *msg_body;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
280 char buf[33];
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
281
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
282 g_return_if_fail(oim != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
283 oim_request = g_queue_pop_head(oim->send_queue);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
284 g_return_if_fail(oim_request != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
285
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
286 purple_debug_info("MSNP14","send single OIM Message\n");
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
287 mspauth = g_strdup_printf("t=%s&amp;p=%s",
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
288 oim->session->passport_info.t,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
289 oim->session->passport_info.p
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
290 );
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
291 g_queue_push_head(oim->send_queue,oim_request);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
292
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
293 /* if we got the challenge lock key, we compute it
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
294 * else we go for the SOAP fault and resend it.
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
295 */
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
296 if(oim->challenge != NULL){
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
297 msn_handle_chl(oim->challenge, buf);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
298 }else{
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
299 purple_debug_info("MSNP14","no lock key challenge,wait for SOAP Fault and Resend\n");
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
300 buf[0]='\0';
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
301 }
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
302 purple_debug_info("MSNP14","get the lock key challenge {%s}\n",buf);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
303
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
304 msg_body = msn_oim_msg_to_str(oim, oim_request->oim_msg);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
305 soap_body = g_strdup_printf(MSN_OIM_SEND_TEMPLATE,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
306 oim_request->from_member,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
307 oim_request->friendname,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
308 oim_request->to_member,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
309 mspauth,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
310 MSNP13_WLM_PRODUCT_ID,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
311 buf,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
312 oim_request->send_seq,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
313 msg_body
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
314 );
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
315 soap_request = msn_soap_request_new(MSN_OIM_SEND_HOST,
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20550
diff changeset
316 MSN_OIM_SEND_URL,
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20550
diff changeset
317 MSN_OIM_SEND_SOAP_ACTION,
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
318 soap_body,
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20550
diff changeset
319 NULL,
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
320 msn_oim_send_read_cb,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
321 msn_oim_send_written_cb);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
322 g_free(mspauth);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
323 g_free(msg_body);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
324 g_free(soap_body);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
325
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
326 /*increase the offline Sequence control*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
327 if(oim->challenge != NULL){
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
328 oim->send_seq++;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
329 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
330 msn_soap_post(oim->sendconn,soap_request,msn_oim_send_connect_init);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
331 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
332
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
333 /****************************************
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
334 * OIM delete SOAP request
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
335 * **************************************/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
336 static void
20513
351eb76ee992 Compile warning fixes
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20485
diff changeset
337 msn_oim_delete_read_cb(gpointer data, gint source, PurpleInputCondition cond)
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
338 {
20513
351eb76ee992 Compile warning fixes
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20485
diff changeset
339 MsnSoapConn * soapconn = data;
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
340
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
341 purple_debug_info("MSNP14","OIM delete read buffer:{%s}\n",soapconn->body);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
342
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
343 msn_soap_free_read_buf(soapconn);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
344 /*get next single Offline Message*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
345 msn_soap_post(soapconn,NULL,msn_oim_retrieve_connect_init);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
346 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
347
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
348 static void
20484
4a410a579a80 Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents: 20481
diff changeset
349 msn_oim_delete_written_cb(gpointer data, gint source, PurpleInputCondition cond)
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
350 {
20513
351eb76ee992 Compile warning fixes
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20485
diff changeset
351 MsnSoapConn * soapconn = data;
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
352
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
353 soapconn->read_cb = msn_oim_delete_read_cb;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
354 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
355
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
356 /*Post to get the Offline Instant Message*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
357 static void
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
358 msn_oim_post_delete_msg(MsnOim *oim,const char *msgid)
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
359 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
360 MsnSoapReq *soap_request;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
361 const char *soap_body,*t,*p;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
362
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
363 g_return_if_fail(oim != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
364 g_return_if_fail(msgid != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
365
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
366 purple_debug_info("MSNP14","Delete single OIM Message {%s}\n",msgid);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
367 t = oim->session->passport_info.t;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
368 p = oim->session->passport_info.p;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
369
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
370 soap_body = g_strdup_printf(MSN_OIM_DEL_TEMPLATE,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
371 t,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
372 p,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
373 msgid
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
374 );
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
375 soap_request = msn_soap_request_new(MSN_OIM_RETRIEVE_HOST,
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20550
diff changeset
376 MSN_OIM_RETRIEVE_URL,
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20550
diff changeset
377 MSN_OIM_DEL_SOAP_ACTION,
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
378 soap_body,
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20550
diff changeset
379 NULL,
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
380 msn_oim_delete_read_cb,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
381 msn_oim_delete_written_cb);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
382 msn_soap_post(oim->retrieveconn,soap_request,msn_oim_retrieve_connect_init);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
383 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
384
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
385 /****************************************
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
386 * OIM get SOAP request
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
387 * **************************************/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
388 /*oim SOAP server login error*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
389 static void
20484
4a410a579a80 Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents: 20481
diff changeset
390 msn_oim_get_error_cb(PurpleSslConnection *gsc, PurpleSslErrorType error, void *data)
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
391 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
392 MsnSoapConn *soapconn = data;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
393 MsnSession *session;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
394
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
395 session = soapconn->session;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
396 g_return_if_fail(session != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
397 msn_soap_clean_unhandled_request(soapconn);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
398
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
399 // msn_session_set_error(session, MSN_ERROR_SERV_DOWN, _("Unable to connect to OIM server"));
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
400 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
401
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
402 /*msn oim SOAP server connect process*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
403 static void
20484
4a410a579a80 Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents: 20481
diff changeset
404 msn_oim_get_connect_cb(gpointer data, PurpleSslConnection *gsc,
4a410a579a80 Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents: 20481
diff changeset
405 PurpleInputCondition cond)
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
406 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
407 MsnSoapConn *soapconn = data;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
408 MsnSession * session;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
409 MsnOim *oim;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
410
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
411 oim = soapconn->parent;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
412 g_return_if_fail(oim != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
413
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
414 session = oim->session;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
415 g_return_if_fail(session != NULL);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
416
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
417 purple_debug_info("MSNP14","oim get SOAP Server connected!\n");
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
418 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
419
20573
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
420 /* like purple_str_to_time, but different. The format of the timestamp
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
421 * is like this: 5 Sep 2007 21:42:12 -0700 */
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
422 static time_t
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
423 msn_oim_parse_timestamp(const char *timestamp)
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
424 {
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
425 char month_str[4], tz_str[6];
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
426 char *tz_ptr = tz_str;
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
427 static const char *months[] = {
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
428 "Jan", "Feb", "Mar", "Apr", "May", "Jun",
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
429 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", NULL
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
430 };
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
431 struct tm t;
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
432 memset(&t, 0, sizeof(t));
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
433
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
434 if (sscanf(timestamp, "%02d %03s %04d %02d:%02d:%02d %05s",
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
435 &t.tm_mday, month_str, &t.tm_year,
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
436 &t.tm_hour, &t.tm_min, &t.tm_sec, tz_str) == 7) {
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
437 gboolean offset_positive = TRUE;
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
438 int tzhrs;
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
439 int tzmins;
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
440
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
441 for (t.tm_mon = 0;
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
442 months[t.tm_mon] != NULL &&
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
443 strcmp(months[t.tm_mon], month_str) != 0; t.tm_mon++);
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
444 if (months[t.tm_mon] != NULL) {
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
445 if (*tz_str == '-') {
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
446 offset_positive = FALSE;
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
447 tz_ptr++;
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
448 }
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
449
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
450 if (sscanf(tz_ptr, "%02d%02d", &tzhrs, &tzmins) == 2) {
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
451 t.tm_year -= 1900;
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
452 #if HAVE_TIMEZONE
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
453 t.tm_gmtoff = tzhrs * 60 * 60 + tzmins * 60;
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
454 if (!offset_positive)
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
455 t.tm_gmtoff *= -1;
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
456 #endif
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
457 t.tm_isdst = 0;
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
458 return mktime(&t);
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
459 }
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
460 }
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
461 }
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
462
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
463 purple_debug_info("MSNP14:OIM", "Can't parse timestamp %s\n", timestamp);
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
464 return time(NULL);
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
465 }
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
466
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
467 /*Post the Offline Instant Message to User Conversation*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
468 static void
20573
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
469 msn_oim_report_to_user(MsnOim *oim, const char *msg_str)
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
470 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
471 MsnMessage *message;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
472 char *date,*from,*decode_msg;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
473 gsize body_len;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
474 char **tokens;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
475 char *start,*end;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
476 int has_nick = 0;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
477 char *passport_str, *passport;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
478 char *msg_id;
20518
8aa1360ee12a Parse the message timestamp using purple_str_to_time. I haven't been able
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20516
diff changeset
479 time_t stamp;
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
480
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
481 message = msn_message_new(MSN_MSG_UNKNOWN);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
482
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
483 msn_message_parse_payload(message, msg_str, strlen(msg_str),
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
484 MSG_OIM_LINE_DEM, MSG_OIM_BODY_DEM);
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
485 purple_debug_info("MSNP14","oim body:{%s}\n",message->body);
20513
351eb76ee992 Compile warning fixes
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20485
diff changeset
486 decode_msg = (char *)purple_base64_decode(message->body,&body_len);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
487 date = (char *)g_hash_table_lookup(message->attr_table, "Date");
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
488 from = (char *)g_hash_table_lookup(message->attr_table, "From");
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
489 if(strstr(from," ")){
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
490 has_nick = 1;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
491 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
492 if(has_nick){
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
493 tokens = g_strsplit(from , " " , 2);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
494 passport_str = g_strdup(tokens[1]);
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
495 purple_debug_info("MSNP14","oim Date:{%s},nickname:{%s},tokens[1]:{%s} passport{%s}\n",
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
496 date,tokens[0],tokens[1],passport_str);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
497 g_strfreev(tokens);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
498 }else{
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
499 passport_str = g_strdup(from);
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
500 purple_debug_info("MSNP14","oim Date:{%s},passport{%s}\n",
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
501 date,passport_str);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
502 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
503 start = strstr(passport_str,"<");
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
504 start += 1;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
505 end = strstr(passport_str,">");
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
506 passport = g_strndup(start,end - start);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
507 g_free(passport_str);
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
508 purple_debug_info("MSNP14","oim Date:{%s},passport{%s}\n",date,passport);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
509
20573
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
510 stamp = msn_oim_parse_timestamp(date);
20518
8aa1360ee12a Parse the message timestamp using purple_str_to_time. I haven't been able
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20516
diff changeset
511
8aa1360ee12a Parse the message timestamp using purple_str_to_time. I haven't been able
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20516
diff changeset
512 serv_got_im(oim->session->account->gc, passport, decode_msg, 0, stamp);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
513
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
514 /*Now get the oim message ID from the oim_list.
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
515 * and append to read list to prepare for deleting the Offline Message when sign out
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
516 */
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
517 if(oim->oim_list != NULL){
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
518 msg_id = oim->oim_list->data;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
519 msn_oim_post_delete_msg(oim,msg_id);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
520 oim->oim_list = g_list_remove(oim->oim_list, oim->oim_list->data);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
521 g_free(msg_id);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
522 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
523
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
524 g_free(passport);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
525 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
526
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
527 /* Parse the XML data,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
528 * prepare to report the OIM to user
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
529 */
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
530 static void
20573
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
531 msn_oim_get_process(MsnOim *oim, const char *oim_msg)
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
532 {
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20573
diff changeset
533 xmlnode *oim_node,*bodyNode,*responseNode,*msgNode;
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20573
diff changeset
534 char *msg_str;
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
535
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20573
diff changeset
536 oim_node = xmlnode_from_str(oim_msg, strlen(oim_msg));
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20573
diff changeset
537 bodyNode = xmlnode_get_child(oim_node,"Body");
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
538 responseNode = xmlnode_get_child(bodyNode,"GetMessageResponse");
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
539 msgNode = xmlnode_get_child(responseNode,"GetMessageResult");
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20573
diff changeset
540 msg_str = xmlnode_get_data(msgNode);
20484
4a410a579a80 Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents: 20481
diff changeset
541 purple_debug_info("OIM","msg:{%s}\n",msg_str);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
542 msn_oim_report_to_user(oim,msg_str);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
543
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
544 g_free(msg_str);
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20573
diff changeset
545 xmlnode_free(oim_node);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
546 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
547
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
548 static void
20513
351eb76ee992 Compile warning fixes
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20485
diff changeset
549 msn_oim_get_read_cb(gpointer data, gint source, PurpleInputCondition cond)
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
550 {
20513
351eb76ee992 Compile warning fixes
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20485
diff changeset
551 MsnSoapConn * soapconn = data;
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
552 MsnOim * oim = soapconn->session->oim;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
553
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
554 purple_debug_info("MSNP14","OIM get read buffer:{%s}\n",soapconn->body);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
555
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
556 /*we need to process the read message!*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
557 msn_oim_get_process(oim,soapconn->body);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
558 msn_soap_free_read_buf(soapconn);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
559
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
560 /*get next single Offline Message*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
561 msn_soap_post(soapconn,NULL,msn_oim_retrieve_connect_init);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
562 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
563
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
564 static void
20484
4a410a579a80 Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents: 20481
diff changeset
565 msn_oim_get_written_cb(gpointer data, gint source, PurpleInputCondition cond)
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
566 {
20513
351eb76ee992 Compile warning fixes
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20485
diff changeset
567 MsnSoapConn * soapconn = data;
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
568
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
569 soapconn->read_cb = msn_oim_get_read_cb;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
570 // msn_soap_read_cb(data,source,cond);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
571 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
572
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
573 /* parse the oim XML data
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
574 * and post it to the soap server to get the Offline Message
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
575 * */
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
576 void
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
577 msn_parse_oim_msg(MsnOim *oim,const char *xmlmsg)
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
578 {
20573
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
579 xmlnode *node, *mNode,*ENode,*INode,*rtNode,*nNode;
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
580 char *passport,*msgid,*nickname, *unread, *rTime = NULL;
20527
1ee8b2a70ed7 Compile fix, whoops! Thanks Masca/salinasv.
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20526
diff changeset
581 MsnSession *session = oim->session;
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
582
20573
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
583 purple_debug_info("MSNP14:OIM", "%s", xmlmsg);
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
584
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
585 node = xmlnode_from_str(xmlmsg, strlen(xmlmsg));
20573
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
586 if (strcmp(node->name, "MD") != 0) {
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
587 xmlnode_free(node);
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
588 return;
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
589 }
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
590
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
591 ENode = xmlnode_get_child(node, "E");
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
592 INode = xmlnode_get_child(ENode, "IU");
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
593 unread = xmlnode_get_data(INode);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
594
20526
80996d766b46 Don't notify for initial email messages unless the preference is set for
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20522
diff changeset
595 if (unread != NULL && purple_account_get_check_mail(session->account))
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
596 {
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
597 int count = atoi(unread);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
598
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
599 if (count > 0)
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
600 {
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
601 const char *passport;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
602 const char *url;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
603
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
604 passport = msn_user_get_passport(session->user);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
605 url = session->passport_info.file;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
606
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
607 purple_notify_emails(session->account->gc, atoi(unread), FALSE, NULL, NULL,
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
608 &passport, &url, NULL, NULL);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
609 }
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
610 }
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
611
20573
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
612 for(mNode = xmlnode_get_child(node, "M"); mNode;
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
613 mNode = xmlnode_get_next_twin(mNode)){
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
614 /*email Node*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
615 ENode = xmlnode_get_child(mNode,"E");
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
616 passport = xmlnode_get_data(ENode);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
617 /*Index */
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
618 INode = xmlnode_get_child(mNode,"I");
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
619 msgid = xmlnode_get_data(INode);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
620 /*Nickname*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
621 nNode = xmlnode_get_child(mNode,"N");
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
622 nickname = xmlnode_get_data(nNode);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
623 /*receive time*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
624 rtNode = xmlnode_get_child(mNode,"RT");
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
625 if(rtNode != NULL) {
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
626 rTime = xmlnode_get_data(rtNode);
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
627 rtNode = NULL;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
628 }
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
629 /* purple_debug_info("MSNP14","E:{%s},I:{%s},rTime:{%s}\n",passport,msgid,rTime); */
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
630
20573
d4d5f8079126 mostly fixed offline messaging, still 2 bugs:
Ka-Hing Cheung <khc@pidgin.im>
parents: 20564
diff changeset
631 oim->oim_list = g_list_append(oim->oim_list,strdup(msgid));
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
632 msn_oim_post_single_get_msg(oim,msgid);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
633 g_free(passport);
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
634 g_free(msgid);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
635 g_free(rTime);
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
636 rTime = NULL;
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
637 g_free(nickname);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
638 }
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20573
diff changeset
639 g_free(unread);
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20518
diff changeset
640 xmlnode_free(node);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
641 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
642
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
643 /*Post to get the Offline Instant Message*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
644 static void
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
645 msn_oim_post_single_get_msg(MsnOim *oim,const char *msgid)
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
646 {
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
647 MsnSoapReq *soap_request;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
648 const char *soap_body,*t,*p;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
649
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
650 purple_debug_info("MSNP14","Get single OIM Message\n");
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
651 t = oim->session->passport_info.t;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
652 p = oim->session->passport_info.p;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
653
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
654 soap_body = g_strdup_printf(MSN_OIM_GET_TEMPLATE,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
655 t,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
656 p,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
657 msgid
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
658 );
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
659 soap_request = msn_soap_request_new(MSN_OIM_RETRIEVE_HOST,
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20550
diff changeset
660 MSN_OIM_RETRIEVE_URL,
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20550
diff changeset
661 MSN_OIM_GET_SOAP_ACTION,
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
662 soap_body,
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20550
diff changeset
663 NULL,
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
664 msn_oim_get_read_cb,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
665 msn_oim_get_written_cb);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
666 msn_soap_post(oim->retrieveconn,soap_request,msn_oim_retrieve_connect_init);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
667 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
668
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
669 /*msn oim retrieve server connect init */
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
670 static void
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
671 msn_oim_retrieve_connect_init(MsnSoapConn *soapconn)
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
672 {
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
673 purple_debug_info("MSNP14","msn_oim_connect...\n");
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
674 msn_soap_init(soapconn,MSN_OIM_RETRIEVE_HOST,1,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
675 msn_oim_get_connect_cb,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
676 msn_oim_get_error_cb);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
677 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
678
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
679 /*Msn OIM Send Server Connect Init Function*/
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
680 static void
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
681 msn_oim_send_connect_init(MsnSoapConn *sendconn)
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
682 {
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20527
diff changeset
683 purple_debug_info("MSNP14","msn oim send connect init...\n");
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
684 msn_soap_init(sendconn,MSN_OIM_SEND_HOST,1,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
685 msn_oim_send_connect_cb,
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
686 msn_oim_send_error_cb);
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
687 }
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
688
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff changeset
689 /*endof oim.c*/

mercurial