Sat, 03 Nov 2007 20:12:04 +0000
Fix some typos
|
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 contact.c |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
3 | * get MSN contacts via SOAP request |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
4 | * created by MaYuan<mayuan2006@gmail.com> |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
5 | * |
|
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 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
27 | #include "msn.h" |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
28 | #include "contact.h" |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
29 | #include "xmlnode.h" |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
30 | #include "group.h" |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
31 | #include "soap2.h" |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
32 | |
|
20567
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
33 | const char *MsnSoapPartnerScenarioText[] = |
|
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:
20562
diff
changeset
|
34 | { |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
35 | "Initial", |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
36 | "ContactSave", |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
37 | "MessengerPendingList", |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
38 | "ContactMsgrAPI", |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
39 | "BlockUnblock" |
|
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:
20562
diff
changeset
|
40 | }; |
|
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:
20562
diff
changeset
|
41 | |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
42 | const char *MsnMemberRole[] = |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
43 | { |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
44 | "Forward", |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
45 | "Allow", |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
46 | "Block", |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
47 | "Reverse", |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
48 | "Pending" |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
49 | }; |
|
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:
20562
diff
changeset
|
50 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
51 | typedef struct { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
52 | MsnContact *contact; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
53 | MsnSoapPartnerScenario which; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
54 | } GetContactListCbData; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
55 | |
|
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:
20562
diff
changeset
|
56 | /* new a contact */ |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
57 | MsnContact * |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
58 | msn_contact_new(MsnSession *session) |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
59 | { |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
60 | MsnContact *contact; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
61 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
62 | contact = g_new0(MsnContact, 1); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
63 | contact->session = session; |
|
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 | return contact; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
66 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
67 | |
|
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:
20562
diff
changeset
|
68 | /* destroy the contact */ |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
69 | void |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
70 | msn_contact_destroy(MsnContact *contact) |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
71 | { |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
72 | g_free(contact); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
73 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
74 | |
|
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:
20562
diff
changeset
|
75 | MsnCallbackState * |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
76 | msn_callback_state_new(MsnSession *session) |
|
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:
20562
diff
changeset
|
77 | { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
78 | MsnCallbackState *state = g_new0(MsnCallbackState, 1); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
79 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
80 | state->session = session; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
81 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
82 | return state; |
|
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:
20562
diff
changeset
|
83 | } |
|
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:
20562
diff
changeset
|
84 | |
|
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:
20562
diff
changeset
|
85 | void |
|
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:
20562
diff
changeset
|
86 | msn_callback_state_free(MsnCallbackState *state) |
|
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:
20562
diff
changeset
|
87 | { |
|
20585
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
88 | if (state == NULL) |
|
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
89 | return; |
|
20609
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
90 | |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
91 | g_free(state->who); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
92 | g_free(state->uid); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
93 | g_free(state->old_group_name); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
94 | g_free(state->new_group_name); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
95 | g_free(state->guid); |
|
20609
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
96 | |
|
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:
20562
diff
changeset
|
97 | g_free(state); |
|
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:
20562
diff
changeset
|
98 | } |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
99 | |
|
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:
20562
diff
changeset
|
100 | void |
|
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:
20562
diff
changeset
|
101 | msn_callback_state_set_who(MsnCallbackState *state, const gchar *who) |
|
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:
20562
diff
changeset
|
102 | { |
|
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:
20562
diff
changeset
|
103 | g_return_if_fail(state != NULL); |
|
20572
9145554836af
Fix a bug where we were g_strdup'ing a previously freed pointer. Thanks to khc for the debugging.
Carlos Silva <typ0@pidgin.im>
parents:
20569
diff
changeset
|
104 | |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
105 | g_free(state->who); |
|
21067
97a745428ab0
Cleanup some unnecessary NULL checks in g_strdup()/g_free().
Daniel Atallah <datallah@pidgin.im>
parents:
20933
diff
changeset
|
106 | state->who = g_strdup(who); |
|
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:
20562
diff
changeset
|
107 | } |
|
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:
20562
diff
changeset
|
108 | |
|
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:
20562
diff
changeset
|
109 | void |
|
20609
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
110 | msn_callback_state_set_uid(MsnCallbackState *state, const gchar *uid) |
|
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
111 | { |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
112 | g_return_if_fail(state != NULL); |
|
20609
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
113 | |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
114 | g_free(state->uid); |
|
21067
97a745428ab0
Cleanup some unnecessary NULL checks in g_strdup()/g_free().
Daniel Atallah <datallah@pidgin.im>
parents:
20933
diff
changeset
|
115 | state->uid = g_strdup(uid); |
|
20609
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
116 | } |
|
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
117 | |
|
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
118 | void |
|
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:
20562
diff
changeset
|
119 | msn_callback_state_set_old_group_name(MsnCallbackState *state, const gchar *old_group_name) |
|
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:
20562
diff
changeset
|
120 | { |
|
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:
20562
diff
changeset
|
121 | g_return_if_fail(state != NULL); |
|
20572
9145554836af
Fix a bug where we were g_strdup'ing a previously freed pointer. Thanks to khc for the debugging.
Carlos Silva <typ0@pidgin.im>
parents:
20569
diff
changeset
|
122 | |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
123 | g_free(state->old_group_name); |
|
21067
97a745428ab0
Cleanup some unnecessary NULL checks in g_strdup()/g_free().
Daniel Atallah <datallah@pidgin.im>
parents:
20933
diff
changeset
|
124 | state->old_group_name = g_strdup(old_group_name); |
|
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:
20562
diff
changeset
|
125 | } |
|
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:
20562
diff
changeset
|
126 | |
|
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:
20562
diff
changeset
|
127 | void |
|
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:
20562
diff
changeset
|
128 | msn_callback_state_set_new_group_name(MsnCallbackState *state, const gchar *new_group_name) |
|
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:
20562
diff
changeset
|
129 | { |
|
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:
20562
diff
changeset
|
130 | g_return_if_fail(state != NULL); |
|
20572
9145554836af
Fix a bug where we were g_strdup'ing a previously freed pointer. Thanks to khc for the debugging.
Carlos Silva <typ0@pidgin.im>
parents:
20569
diff
changeset
|
131 | |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
132 | g_free(state->new_group_name); |
|
21067
97a745428ab0
Cleanup some unnecessary NULL checks in g_strdup()/g_free().
Daniel Atallah <datallah@pidgin.im>
parents:
20933
diff
changeset
|
133 | state->new_group_name = g_strdup(new_group_name); |
|
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:
20562
diff
changeset
|
134 | } |
|
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:
20562
diff
changeset
|
135 | |
|
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:
20562
diff
changeset
|
136 | void |
|
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:
20562
diff
changeset
|
137 | msn_callback_state_set_guid(MsnCallbackState *state, const gchar *guid) |
|
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:
20562
diff
changeset
|
138 | { |
|
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:
20562
diff
changeset
|
139 | g_return_if_fail(state != NULL); |
|
20572
9145554836af
Fix a bug where we were g_strdup'ing a previously freed pointer. Thanks to khc for the debugging.
Carlos Silva <typ0@pidgin.im>
parents:
20569
diff
changeset
|
140 | |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
141 | g_free(state->guid); |
|
21067
97a745428ab0
Cleanup some unnecessary NULL checks in g_strdup()/g_free().
Daniel Atallah <datallah@pidgin.im>
parents:
20933
diff
changeset
|
142 | state->guid = g_strdup(guid); |
|
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:
20562
diff
changeset
|
143 | } |
|
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:
20562
diff
changeset
|
144 | |
|
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:
20562
diff
changeset
|
145 | |
|
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:
20562
diff
changeset
|
146 | void |
|
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:
20562
diff
changeset
|
147 | msn_callback_state_set_list_id(MsnCallbackState *state, MsnListId list_id) |
|
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:
20562
diff
changeset
|
148 | { |
|
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:
20562
diff
changeset
|
149 | g_return_if_fail(state != NULL); |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
150 | |
|
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:
20562
diff
changeset
|
151 | state->list_id = list_id; |
|
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:
20562
diff
changeset
|
152 | } |
|
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:
20562
diff
changeset
|
153 | |
|
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:
20562
diff
changeset
|
154 | void |
|
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:
20562
diff
changeset
|
155 | msn_callback_state_set_action(MsnCallbackState *state, MsnCallbackAction action) |
|
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:
20562
diff
changeset
|
156 | { |
|
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:
20562
diff
changeset
|
157 | g_return_if_fail(state != NULL); |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
158 | |
|
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:
20562
diff
changeset
|
159 | state->action |= action; |
|
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:
20562
diff
changeset
|
160 | } |
|
20478
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 | /*get MSN member role utility*/ |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
163 | static MsnListId |
| 20878 | 164 | msn_get_memberrole(const char *role) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
165 | { |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
166 | g_return_val_if_fail(role != NULL, 0); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
167 | |
|
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:
20562
diff
changeset
|
168 | if (!strcmp(role,"Allow")) { |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
169 | return MSN_LIST_AL; |
|
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:
20562
diff
changeset
|
170 | } else if (!strcmp(role,"Block")) { |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
171 | return MSN_LIST_BL; |
|
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:
20562
diff
changeset
|
172 | } else if (!strcmp(role,"Reverse")) { |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
173 | return MSN_LIST_RL; |
|
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:
20562
diff
changeset
|
174 | } else if (!strcmp(role,"Pending")) { |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
175 | return MSN_LIST_PL; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
176 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
177 | return 0; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
178 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
179 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
180 | /*get User Type*/ |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
181 | static int |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
182 | msn_get_user_type(char *type) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
183 | { |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
184 | g_return_val_if_fail(type != NULL, 0); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
185 | |
|
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:
20562
diff
changeset
|
186 | if (!strcmp(type,"Regular")) { |
|
20525
5f619c387b5d
Make the MsnUser type an enum so we have fewer magic numbers
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20523
diff
changeset
|
187 | return MSN_USER_TYPE_PASSPORT; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
188 | } |
|
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:
20562
diff
changeset
|
189 | if (!strcmp(type,"Live")) { |
|
20525
5f619c387b5d
Make the MsnUser type an enum so we have fewer magic numbers
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20523
diff
changeset
|
190 | return MSN_USER_TYPE_PASSPORT; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
191 | } |
|
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:
20562
diff
changeset
|
192 | if (!strcmp(type,"LivePending")) { |
|
20525
5f619c387b5d
Make the MsnUser type an enum so we have fewer magic numbers
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20523
diff
changeset
|
193 | return MSN_USER_TYPE_PASSPORT; |
|
20478
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 | |
|
20525
5f619c387b5d
Make the MsnUser type an enum so we have fewer magic numbers
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20523
diff
changeset
|
196 | return MSN_USER_TYPE_UNKNOWN; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
197 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
198 | |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
199 | /* Create the AddressBook in the server, if we don't have one */ |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
200 | static void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
201 | msn_create_address_cb(MsnSoapMessage *req, MsnSoapMessage *resp, gpointer data) |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
202 | { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
203 | if (resp && msn_soap_xml_get(resp->xml, "Body/Fault") == NULL) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
204 | purple_debug_info("msnab", "Address Book successfully created!\n"); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
205 | msn_get_address_book((MsnContact *)data, MSN_PS_INITIAL, NULL, NULL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
206 | } else { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
207 | purple_debug_info("msnab", "Address Book creation failed!\n"); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
208 | } |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
209 | } |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
210 | |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
211 | static void |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
212 | msn_create_address_book(MsnContact * contact) |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
213 | { |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
214 | gchar *body; |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
215 | |
|
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:
20562
diff
changeset
|
216 | g_return_if_fail(contact != NULL); |
|
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:
20562
diff
changeset
|
217 | g_return_if_fail(contact->session != NULL); |
|
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:
20562
diff
changeset
|
218 | g_return_if_fail(contact->session->user != NULL); |
|
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:
20562
diff
changeset
|
219 | g_return_if_fail(contact->session->user->passport != NULL); |
|
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:
20562
diff
changeset
|
220 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
221 | purple_debug_info("msnab","Creating an Address Book.\n"); |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
222 | |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
223 | body = g_strdup_printf(MSN_ADD_ADDRESSBOOK_TEMPLATE, contact->session->user->passport); |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
224 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
225 | msn_soap_message_send(contact->session, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
226 | msn_soap_message_new(MSN_ADD_ADDRESSBOOK_SOAP_ACTION, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
227 | xmlnode_from_str(body, -1)), |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
228 | MSN_CONTACT_SERVER, MSN_ADDRESS_BOOK_POST_URL, msn_create_address_cb, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
229 | contact); |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
230 | |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
231 | g_free(body); |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
232 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
233 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
234 | static void |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
235 | msn_parse_each_member(MsnSession *session, xmlnode *member, const char *node, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
236 | MsnListId list) |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
237 | { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
238 | char *passport = xmlnode_get_data(xmlnode_get_child(member, node)); |
| 21390 | 239 | char *type = xmlnode_get_data(xmlnode_get_child(member, "Type")); |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
240 | char *member_id = xmlnode_get_data(xmlnode_get_child(member, "MembershipId")); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
241 | MsnUser *user = msn_userlist_find_add_user(session->userlist, passport, NULL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
242 | |
| 21390 | 243 | purple_debug_info("msncl","%s name: %s, Type: %s, MembershipID: %s\n", |
| 244 | node, passport, type, member_id == NULL ? "(null)" : member_id); | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
245 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
246 | if (member_id) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
247 | user->membership_id[list] = atoi(member_id); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
248 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
249 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
250 | msn_got_lst_user(session, user, 1 << list, NULL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
251 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
252 | g_free(passport); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
253 | g_free(type); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
254 | g_free(member_id); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
255 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
256 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
257 | static void |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
258 | msn_parse_each_service(MsnSession *session, xmlnode *service) |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
259 | { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
260 | xmlnode *type; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
261 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
262 | if ((type = msn_soap_xml_get(service, "Info/Handle/Type"))) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
263 | char *type_str = xmlnode_get_data(type); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
264 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
265 | if (g_str_equal(type_str, "Profile")) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
266 | /* Process Windows Live 'Messenger Roaming Identity' */ |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
267 | } else if (g_str_equal(type_str, "Messenger")) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
268 | xmlnode *lastchange = xmlnode_get_child(service, "LastChange"); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
269 | char *lastchange_str = xmlnode_get_data(lastchange); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
270 | xmlnode *membership; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
271 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
272 | purple_debug_info("msncl","last change: %s\n", lastchange_str); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
273 | purple_account_set_string(session->account, "CLLastChange", |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
274 | lastchange_str); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
275 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
276 | for (membership = msn_soap_xml_get(service, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
277 | "Memberships/Membership"); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
278 | membership; membership = xmlnode_get_next_twin(membership)) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
279 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
280 | xmlnode *role = xmlnode_get_child(membership, "MemberRole"); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
281 | char *role_str = xmlnode_get_data(role); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
282 | MsnListId list = msn_get_memberrole(role_str); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
283 | xmlnode *member; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
284 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
285 | purple_debug_info("msncl", "MemberRole role: %s, list: %d\n", |
| 21390 | 286 | role_str, list); |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
287 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
288 | for (member = msn_soap_xml_get(membership, "Members/Member"); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
289 | member; member = xmlnode_get_next_twin(member)) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
290 | const char *member_type = xmlnode_get_attrib(member, "type"); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
291 | if (g_str_equal(member_type, "PassportMember")) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
292 | msn_parse_each_member(session, member, "PassportName", |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
293 | list); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
294 | } else if (g_str_equal(member_type, "PhoneMember")) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
295 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
296 | } else if (g_str_equal(member_type, "EmailMember")) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
297 | msn_parse_each_member(session, member, "Email", list); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
298 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
299 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
300 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
301 | g_free(role_str); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
302 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
303 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
304 | g_free(lastchange_str); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
305 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
306 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
307 | g_free(type_str); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
308 | } |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
309 | } |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
310 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
311 | /*parse contact list*/ |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
312 | static void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
313 | msn_parse_contact_list(MsnContact *contact, xmlnode *node) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
314 | { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
315 | xmlnode *fault, *faultnode; |
|
20546
35d778ab0450
Correctly process an additional <Service> with type Profile and name 'Messenger Roaming Identity' sent with the contact list using a recently registered WLM account, that was causing the initial ADL command to be sent malformed, and our presence status not being forwarded to our buddies
Carlos Silva <typ0@pidgin.im>
parents:
20545
diff
changeset
|
316 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
317 | /* we may get a response if our cache data is too old: |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
318 | * |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
319 | * <faultstring>Need to do full sync. Can't sync deltas Client |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
320 | * has too old a copy for us to do a delta sync</faultstring> |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
321 | * |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
322 | * this is not handled yet |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
323 | */ |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
324 | if ((fault = msn_soap_xml_get(node, "Body/Fault"))) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
325 | if ((faultnode = xmlnode_get_child(fault, "faultstring"))) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
326 | char *faultstring = xmlnode_get_data(faultnode); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
327 | purple_debug_info("msncl", "Retrieving contact list failed: %s\n", |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
328 | faultstring); |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
329 | g_free(faultstring); |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
330 | } |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
331 | if ((faultnode = msn_soap_xml_get(fault, "detail/errorcode"))) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
332 | char *errorcode = xmlnode_get_data(faultnode); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
333 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
334 | if (g_str_equal(errorcode, "ABDoesNotExist")) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
335 | msn_create_address_book(contact); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
336 | g_free(errorcode); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
337 | return; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
338 | } |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
339 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
340 | g_free(errorcode); |
|
20546
35d778ab0450
Correctly process an additional <Service> with type Profile and name 'Messenger Roaming Identity' sent with the contact list using a recently registered WLM account, that was causing the initial ADL command to be sent malformed, and our presence status not being forwarded to our buddies
Carlos Silva <typ0@pidgin.im>
parents:
20545
diff
changeset
|
341 | } |
|
35d778ab0450
Correctly process an additional <Service> with type Profile and name 'Messenger Roaming Identity' sent with the contact list using a recently registered WLM account, that was causing the initial ADL command to be sent malformed, and our presence status not being forwarded to our buddies
Carlos Silva <typ0@pidgin.im>
parents:
20545
diff
changeset
|
342 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
343 | msn_get_contact_list(contact, MSN_PS_INITIAL, NULL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
344 | } else { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
345 | xmlnode *service; |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
346 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
347 | for (service = msn_soap_xml_get(node, "Body/FindMembershipResponse/" |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
348 | "FindMembershipResult/Services/Service"); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
349 | service; service = xmlnode_get_next_twin(service)) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
350 | msn_parse_each_service(contact->session, service); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
351 | } |
|
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 | } |
|
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 | static void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
356 | msn_get_contact_list_cb(MsnSoapMessage *req, MsnSoapMessage *resp, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
357 | gpointer data) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
358 | { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
359 | GetContactListCbData *cb_data = data; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
360 | MsnContact *contact = cb_data->contact; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
361 | MsnSession *session = contact->session; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
362 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
363 | g_return_if_fail(session != NULL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
364 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
365 | if (resp != NULL) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
366 | const char *abLastChange; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
367 | const char *dynamicItemLastChange; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
368 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
369 | purple_debug_misc("msncl","Got the contact list!\n"); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
370 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
371 | msn_parse_contact_list(cb_data->contact, resp->xml); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
372 | abLastChange = purple_account_get_string(session->account, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
373 | "ablastChange", NULL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
374 | dynamicItemLastChange = purple_account_get_string(session->account, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
375 | "dynamicItemLastChange", NULL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
376 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
377 | if (cb_data->which == MSN_PS_INITIAL) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
378 | #ifdef MSN_PARTIAL_LISTS |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
379 | /* XXX: this should be enabled when we can correctly do partial |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
380 | syncs with the server. Currently we need to retrieve the whole |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
381 | list to detect sync issues */ |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
382 | msn_get_address_book(contact, MSN_PS_INITIAL, abLastChange, dynamicItemLastChange); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
383 | #else |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
384 | msn_get_address_book(contact, MSN_PS_INITIAL, NULL, NULL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
385 | #endif |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
386 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
387 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
388 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
389 | g_free(cb_data); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
390 | } |
|
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 | /*SOAP get contact list*/ |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
393 | void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
394 | msn_get_contact_list(MsnContact * contact, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
395 | const MsnSoapPartnerScenario partner_scenario, const char *update_time) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
396 | { |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
397 | gchar *body = NULL; |
|
20733
a179242f6bef
Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents:
20728
diff
changeset
|
398 | gchar *update_str = NULL; |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
399 | GetContactListCbData cb_data = { contact, partner_scenario }; |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
400 | const gchar *partner_scenario_str = MsnSoapPartnerScenarioText[partner_scenario]; |
|
20546
35d778ab0450
Correctly process an additional <Service> with type Profile and name 'Messenger Roaming Identity' sent with the contact list using a recently registered WLM account, that was causing the initial ADL command to be sent malformed, and our presence status not being forwarded to our buddies
Carlos Silva <typ0@pidgin.im>
parents:
20545
diff
changeset
|
401 | |
|
20562
6ebd3000af51
Improve MSN_SOAP_DEBUG and workaround a Win32 bug which would case Pidgin to consume insane amounts of memory when printing a large string to the Debug Window.
Carlos Silva <typ0@pidgin.im>
parents:
20560
diff
changeset
|
402 | purple_debug_misc("MSNCL","Getting Contact List.\n"); |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
403 | |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
404 | if ( update_time != NULL ) { |
|
20562
6ebd3000af51
Improve MSN_SOAP_DEBUG and workaround a Win32 bug which would case Pidgin to consume insane amounts of memory when printing a large string to the Debug Window.
Carlos Silva <typ0@pidgin.im>
parents:
20560
diff
changeset
|
405 | purple_debug_info("MSNCL","Last update time: %s\n",update_time); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
406 | update_str = g_strdup_printf(MSN_GET_CONTACT_UPDATE_XML,update_time); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
407 | } |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
408 | |
|
20733
a179242f6bef
Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents:
20728
diff
changeset
|
409 | body = g_strdup_printf(MSN_GET_CONTACT_TEMPLATE, partner_scenario_str, update_str ? update_str : ""); |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
410 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
411 | msn_soap_message_send(contact->session, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
412 | msn_soap_message_new(MSN_GET_CONTACT_SOAP_ACTION, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
413 | xmlnode_from_str(body, -1)), |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
414 | MSN_CONTACT_SERVER, MSN_GET_CONTACT_POST_URL, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
415 | msn_get_contact_list_cb, g_memdup(&cb_data, sizeof(cb_data))); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
416 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
417 | g_free(update_str); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
418 | g_free(body); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
419 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
420 | |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
421 | static void |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
422 | msn_parse_addressbook_groups(MsnContact *contact, xmlnode *node) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
423 | { |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
424 | MsnSession *session = contact->session; |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
425 | xmlnode *group; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
426 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
427 | purple_debug_info("MSNAB","msn_parse_addressbook_groups()\n"); |
|
20546
35d778ab0450
Correctly process an additional <Service> with type Profile and name 'Messenger Roaming Identity' sent with the contact list using a recently registered WLM account, that was causing the initial ADL command to be sent malformed, and our presence status not being forwarded to our buddies
Carlos Silva <typ0@pidgin.im>
parents:
20545
diff
changeset
|
428 | |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
429 | for(group = xmlnode_get_child(node, "Group"); group; |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
430 | group = xmlnode_get_next_twin(group)){ |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
431 | xmlnode *groupId, *groupInfo, *groupname; |
|
20733
a179242f6bef
Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents:
20728
diff
changeset
|
432 | char *group_id = NULL, *group_name = NULL; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
433 | |
|
20733
a179242f6bef
Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents:
20728
diff
changeset
|
434 | if ((groupId = xmlnode_get_child(group, "groupId"))) |
|
a179242f6bef
Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents:
20728
diff
changeset
|
435 | group_id = xmlnode_get_data(groupId); |
|
a179242f6bef
Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents:
20728
diff
changeset
|
436 | if ((groupInfo = xmlnode_get_child(group, "groupInfo")) && (groupname = xmlnode_get_child(groupInfo, "name"))) |
|
a179242f6bef
Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents:
20728
diff
changeset
|
437 | group_name = xmlnode_get_data(groupname); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
438 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
439 | msn_group_new(session->userlist, group_id, group_name); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
440 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
441 | if (group_id == NULL){ |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
442 | /* Group of ungroupped buddies */ |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
443 | g_free(group_name); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
444 | continue; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
445 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
446 | |
|
20733
a179242f6bef
Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents:
20728
diff
changeset
|
447 | purple_debug_info("MsnAB","group_id: %s, name: %s\n", group_id, group_name ? group_name : "(null)"); |
|
20484
4a410a579a80
Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents:
20481
diff
changeset
|
448 | if ((purple_find_group(group_name)) == NULL){ |
|
4a410a579a80
Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents:
20481
diff
changeset
|
449 | PurpleGroup *g = purple_group_new(group_name); |
|
4a410a579a80
Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents:
20481
diff
changeset
|
450 | purple_blist_add_group(g, NULL); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
451 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
452 | g_free(group_id); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
453 | g_free(group_name); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
454 | } |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
455 | } |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
456 | |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
457 | static void |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
458 | msn_parse_addressbook_contacts(MsnContact *contact, xmlnode *node) |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
459 | { |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
460 | MsnSession *session = contact->session; |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
461 | xmlnode *contactNode; |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
462 | char *passport = NULL, *Name = NULL, *uid = NULL, *type = NULL; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
463 | |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
464 | for(contactNode = xmlnode_get_child(node, "Contact"); contactNode; |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
465 | contactNode = xmlnode_get_next_twin(contactNode)) { |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
466 | xmlnode *contactId, *contactInfo, *contactType, *passportName, *displayName, *guid, *groupIds; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
467 | MsnUser *user; |
|
20530
0178f0d66bf0
Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20525
diff
changeset
|
468 | MsnUserType usertype; |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
469 | |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
470 | if (!(contactId = xmlnode_get_child(contactNode,"contactId")) |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
471 | || !(contactInfo = xmlnode_get_child(contactNode, "contactInfo")) |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
472 | || !(contactType = xmlnode_get_child(contactInfo, "contactType"))) |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
473 | continue; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
474 | |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
475 | g_free(passport); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
476 | g_free(Name); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
477 | g_free(uid); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
478 | g_free(type); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
479 | passport = Name = uid = type = NULL; |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
480 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
481 | uid = xmlnode_get_data(contactId); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
482 | type = xmlnode_get_data(contactType); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
483 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
484 | /*setup the Display Name*/ |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
485 | if (type && !strcmp(type, "Me")){ |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
486 | char *friendly = NULL; |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
487 | if ((displayName = xmlnode_get_child(contactInfo, "displayName"))) |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
488 | friendly = xmlnode_get_data(displayName); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
489 | purple_connection_set_display_name(session->account->gc, friendly ? purple_url_decode(friendly) : NULL); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
490 | g_free(friendly); |
|
20486
26b9f3efe52d
The last of the merge fix-ups.
Richard Laager <rlaager@pidgin.im>
parents:
20485
diff
changeset
|
491 | continue; /* Not adding own account as buddy to buddylist */ |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
492 | } |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
493 | |
|
20530
0178f0d66bf0
Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20525
diff
changeset
|
494 | usertype = msn_get_user_type(type); |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
495 | passportName = xmlnode_get_child(contactInfo, "passportName"); |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
496 | if (passportName == NULL) { |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
497 | xmlnode *emailsNode, *contactEmailNode, *emailNode; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
498 | xmlnode *messengerEnabledNode; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
499 | char *msnEnabled; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
500 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
501 | /*TODO: add it to the none-instant Messenger group and recognize as email Membership*/ |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
502 | /*Yahoo User?*/ |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
503 | emailsNode = xmlnode_get_child(contactInfo, "emails"); |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
504 | if (emailsNode == NULL) { |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
505 | /*TODO: need to support the Mobile type*/ |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
506 | continue; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
507 | } |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
508 | for(contactEmailNode = xmlnode_get_child(emailsNode, "ContactEmail"); contactEmailNode; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
509 | contactEmailNode = xmlnode_get_next_twin(contactEmailNode) ){ |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
510 | if (!(messengerEnabledNode = xmlnode_get_child(contactEmailNode, "isMessengerEnabled"))) { |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
511 | /* XXX: Should this be a continue instead of a break? It seems like it'd cause unpredictable results otherwise. */ |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
512 | break; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
513 | } |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
514 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
515 | msnEnabled = xmlnode_get_data(messengerEnabledNode); |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
516 | |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
517 | if ((emailNode = xmlnode_get_child(contactEmailNode, "email"))) { |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
518 | g_free(passport); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
519 | passport = xmlnode_get_data(emailNode); |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
520 | } |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
521 | |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
522 | if(msnEnabled && !strcmp(msnEnabled, "true")) { |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
523 | /*Messenger enabled, Get the Passport*/ |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
524 | purple_debug_info("MsnAB", "Yahoo User %s\n", passport ? passport : "(null)"); |
|
20530
0178f0d66bf0
Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20525
diff
changeset
|
525 | usertype = MSN_USER_TYPE_YAHOO; |
|
20578
82571739414b
Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20577
diff
changeset
|
526 | g_free(msnEnabled); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
527 | break; |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
528 | } else { |
|
20484
4a410a579a80
Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents:
20481
diff
changeset
|
529 | /*TODO maybe we can just ignore it in Purple?*/ |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
530 | purple_debug_info("MSNAB", "Other type user\n"); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
531 | } |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
532 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
533 | g_free(msnEnabled); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
534 | } |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
535 | } else { |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
536 | passport = xmlnode_get_data(passportName); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
537 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
538 | |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
539 | if (passport == NULL) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
540 | continue; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
541 | |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
542 | if ((displayName = xmlnode_get_child(contactInfo, "displayName"))) |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
543 | Name = xmlnode_get_data(displayName); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
544 | else |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
545 | Name = g_strdup(passport); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
546 | |
|
20484
4a410a579a80
Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents:
20481
diff
changeset
|
547 | purple_debug_misc("MsnAB","passport:{%s} uid:{%s} display:{%s}\n", |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
548 | passport, uid ? uid : "(null)", Name ? Name : "(null)"); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
549 | |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
550 | user = msn_userlist_find_add_user(session->userlist, passport, Name); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
551 | msn_user_set_uid(user, uid); |
|
20530
0178f0d66bf0
Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20525
diff
changeset
|
552 | msn_user_set_type(user, usertype); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
553 | |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
554 | groupIds = xmlnode_get_child(contactInfo, "groupIds"); |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
555 | if (groupIds) { |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
556 | for (guid = xmlnode_get_child(groupIds, "guid"); guid; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
557 | guid = xmlnode_get_next_twin(guid)){ |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
558 | char *group_id = xmlnode_get_data(guid); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
559 | msn_user_add_group_id(user, group_id); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
560 | purple_debug_misc("MsnAB", "guid:%s\n", group_id ? group_id : "(null)"); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
561 | g_free(group_id); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
562 | } |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
563 | } else { |
|
20733
a179242f6bef
Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents:
20728
diff
changeset
|
564 | purple_debug_info("msn", "User not in any groups, adding to default group.\n"); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
565 | /*not in any group,Then set default group*/ |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
566 | msn_user_add_group_id(user, MSN_INDIVIDUALS_GROUP_ID); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
567 | } |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
568 | |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
569 | msn_got_lst_user(session, user, MSN_LIST_FL_OP, NULL); |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
570 | } |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
571 | |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
572 | g_free(passport); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
573 | g_free(Name); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
574 | g_free(uid); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
575 | g_free(type); |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
576 | } |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
577 | |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
578 | static gboolean |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
579 | msn_parse_addressbook(MsnContact * contact, xmlnode *node) |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
580 | { |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
581 | MsnSession * session; |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
582 | xmlnode *result; |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
583 | xmlnode *groups; |
|
20733
a179242f6bef
Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents:
20728
diff
changeset
|
584 | xmlnode *contacts; |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
585 | xmlnode *abNode; |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
586 | xmlnode *fault; |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
587 | |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
588 | session = contact->session; |
|
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:
20546
diff
changeset
|
589 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
590 | if ((fault = msn_soap_xml_get(node, "Body/Fault"))) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
591 | xmlnode *faultnode; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
592 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
593 | if ((faultnode = xmlnode_get_child(fault, "faultstring"))) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
594 | gchar *faultstring = xmlnode_get_data(faultnode); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
595 | purple_debug_info("MSNAB","Faultstring: %s\n", faultstring); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
596 | g_free(faultstring); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
597 | } |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
598 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
599 | if ((faultnode = msn_soap_xml_get(fault, "detail/errorcode"))) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
600 | gchar *errorcode = xmlnode_get_data(faultnode); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
601 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
602 | purple_debug_info("MSNAB", "Error Code: %s\n", errorcode); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
603 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
604 | if (g_str_equal(errorcode, "ABDoesNotExist")) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
605 | g_free(errorcode); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
606 | return TRUE; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
607 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
608 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
609 | |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
610 | return FALSE; |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
611 | } |
|
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:
20546
diff
changeset
|
612 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
613 | result = msn_soap_xml_get(node, "Body/ABFindAllResponse/ABFindAllResult"); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
614 | if(result == NULL){ |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
615 | purple_debug_misc("MSNAB","receive no address book update\n"); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
616 | return TRUE; |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
617 | } |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
618 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
619 | /* I don't see this "groups" tag documented on msnpiki, need to find out |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
620 | if they are really there, and update msnpiki */ |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
621 | /*Process Group List*/ |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
622 | groups = xmlnode_get_child(result,"groups"); |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
623 | if (groups != NULL) { |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
624 | msn_parse_addressbook_groups(contact, groups); |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
625 | } |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
626 | |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
627 | /*add a default No group to set up the no group Membership*/ |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
628 | msn_group_new(session->userlist, MSN_INDIVIDUALS_GROUP_ID, |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
629 | MSN_INDIVIDUALS_GROUP_NAME); |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
630 | purple_debug_misc("MSNAB","group_id:%s name:%s\n", |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
631 | MSN_INDIVIDUALS_GROUP_ID, MSN_INDIVIDUALS_GROUP_NAME); |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
632 | if ((purple_find_group(MSN_INDIVIDUALS_GROUP_NAME)) == NULL){ |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
633 | PurpleGroup *g = purple_group_new(MSN_INDIVIDUALS_GROUP_NAME); |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
634 | purple_blist_add_group(g, NULL); |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
635 | } |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
636 | |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
637 | /*add a default No group to set up the no group Membership*/ |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
638 | msn_group_new(session->userlist, MSN_NON_IM_GROUP_ID, MSN_NON_IM_GROUP_NAME); |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
639 | purple_debug_misc("MSNAB","group_id:%s name:%s\n", MSN_NON_IM_GROUP_ID, MSN_NON_IM_GROUP_NAME); |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
640 | if ((purple_find_group(MSN_NON_IM_GROUP_NAME)) == NULL){ |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
641 | PurpleGroup *g = purple_group_new(MSN_NON_IM_GROUP_NAME); |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
642 | purple_blist_add_group(g, NULL); |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
643 | } |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
644 | |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
645 | /*Process contact List*/ |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
646 | purple_debug_info("MSNAB","process contact list...\n"); |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
647 | contacts =xmlnode_get_child(result,"contacts"); |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
648 | if (contacts != NULL) { |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
649 | msn_parse_addressbook_contacts(contact, contacts); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
650 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
651 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
652 | abNode =xmlnode_get_child(result,"ab"); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
653 | if(abNode != NULL){ |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
654 | xmlnode *node2; |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
655 | char *tmp = NULL; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
656 | |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
657 | if ((node2 = xmlnode_get_child(abNode, "lastChange"))) |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
658 | tmp = xmlnode_get_data(node2); |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
659 | purple_debug_info("MSNAB"," lastchanged Time:{%s}\n", tmp ? tmp : "(null)"); |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
660 | purple_account_set_string(session->account, "ablastChange", tmp); |
|
20515
d21f4eae2c4c
Store account specific settings in the account, not in some random blist
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20510
diff
changeset
|
661 | |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
662 | g_free(tmp); tmp = NULL; |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
663 | if ((node2 = xmlnode_get_child(abNode, "DynamicItemLastChanged"))) |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
664 | tmp = xmlnode_get_data(node2); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
665 | purple_debug_info("MsnAB"," DynamicItemLastChanged :{%s}\n", tmp ? tmp : "(null)"); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
666 | purple_account_set_string(session->account, "DynamicItemLastChanged", tmp); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
667 | g_free(tmp); |
|
20478
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 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
670 | return TRUE; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
671 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
672 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
673 | static void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
674 | msn_get_address_cb(MsnSoapMessage *req, MsnSoapMessage *resp, gpointer data) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
675 | { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
676 | MsnContact *contact = data; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
677 | MsnSession *session; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
678 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
679 | if (resp == NULL) |
|
20585
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
680 | return; |
|
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
681 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
682 | g_return_if_fail(contact != NULL); |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
683 | session = contact->session; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
684 | g_return_if_fail(session != NULL); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
685 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
686 | purple_debug_misc("MSNAB", "Got the Address Book!\n"); |
|
20562
6ebd3000af51
Improve MSN_SOAP_DEBUG and workaround a Win32 bug which would case Pidgin to consume insane amounts of memory when printing a large string to the Debug Window.
Carlos Silva <typ0@pidgin.im>
parents:
20560
diff
changeset
|
687 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
688 | if (msn_parse_addressbook(contact, resp->xml)) { |
|
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:
20562
diff
changeset
|
689 | if (!session->logged_in) { |
|
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:
20562
diff
changeset
|
690 | msn_send_privacy(session->account->gc); |
|
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:
20562
diff
changeset
|
691 | msn_notification_dump_contact(session); |
|
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:
20562
diff
changeset
|
692 | } |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
693 | } else { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
694 | /* This is making us loop infinitely when we fail to parse the |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
695 | address book, disable for now (we should re-enable when we |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
696 | send timestamps) |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
697 | */ |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
698 | /* |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
699 | msn_get_address_book(contact, NULL, NULL); |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
700 | */ |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
701 | msn_session_disconnect(session); |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
702 | purple_connection_error(session->account->gc, _("Unable to retrieve MSN Address Book")); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
703 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
704 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
705 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
706 | /*get the address book*/ |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
707 | void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
708 | msn_get_address_book(MsnContact *contact, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
709 | MsnSoapPartnerScenario partner_scenario, const char *LastChanged, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
710 | const char *dynamicItemLastChange) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
711 | { |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
712 | char *body, *update_str = NULL; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
713 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
714 | purple_debug_misc("MSNAB","Getting Address Book\n"); |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
715 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
716 | /*build SOAP and POST it*/ |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
717 | if (dynamicItemLastChange != NULL) |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
718 | update_str = g_strdup_printf(MSN_GET_ADDRESS_UPDATE_XML, dynamicItemLastChange); |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
719 | else if (LastChanged != NULL) |
|
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
720 | update_str = g_strdup_printf(MSN_GET_ADDRESS_UPDATE_XML, LastChanged); |
|
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:
20562
diff
changeset
|
721 | |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
722 | body = g_strdup_printf(MSN_GET_ADDRESS_TEMPLATE, MsnSoapPartnerScenarioText[partner_scenario], update_str ? update_str : ""); |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
723 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
724 | msn_soap_message_send(contact->session, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
725 | msn_soap_message_new(MSN_GET_ADDRESS_SOAP_ACTION, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
726 | xmlnode_from_str(body, -1)), |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
727 | MSN_CONTACT_SERVER, MSN_ADDRESS_BOOK_POST_URL, msn_get_address_cb, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
728 | contact); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
729 | |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
730 | g_free(update_str); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
731 | g_free(body); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
732 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
733 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
734 | static void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
735 | msn_add_contact_read_cb(MsnSoapMessage *req, MsnSoapMessage *resp, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
736 | gpointer data) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
737 | { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
738 | MsnCallbackState *state = data; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
739 | MsnSession *session = state->session; |
|
20585
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
740 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
741 | g_return_if_fail(session != NULL); |
|
20585
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
742 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
743 | if (resp != NULL) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
744 | MsnUserList *userlist = session->userlist; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
745 | MsnUser *user; |
|
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:
20562
diff
changeset
|
746 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
747 | purple_debug_info("MSNCL","Contact added successfully\n"); |
|
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:
20562
diff
changeset
|
748 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
749 | // the code this block is replacing didn't send ADL for yahoo contacts, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
750 | // but i haven't confirmed this is WLM's behaviour wrt yahoo contacts |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
751 | if ( !msn_user_is_yahoo(session->account, state->who) ) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
752 | msn_userlist_add_buddy_to_list(userlist, state->who, MSN_LIST_AL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
753 | msn_userlist_add_buddy_to_list(userlist, state->who, MSN_LIST_FL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
754 | } |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
755 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
756 | msn_notification_send_fqy(session, state->who); |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
757 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
758 | user = msn_userlist_find_add_user(userlist, state->who, state->who); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
759 | msn_user_add_group_id(user, state->guid); |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
760 | } |
|
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:
20562
diff
changeset
|
761 | |
|
20567
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
762 | msn_callback_state_free(state); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
763 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
764 | |
|
20567
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
765 | /* add a Contact in MSN_INDIVIDUALS_GROUP */ |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
766 | void |
|
20567
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
767 | msn_add_contact(MsnContact *contact, MsnCallbackState *state, const char *passport) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
768 | { |
|
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:
20562
diff
changeset
|
769 | gchar *body = NULL; |
|
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:
20562
diff
changeset
|
770 | gchar *contact_xml = NULL; |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
771 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
772 | #if 0 |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
773 | gchar *escaped_displayname; |
|
20567
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
774 | |
|
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:
20562
diff
changeset
|
775 | |
|
20567
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
776 | if (displayname != NULL) { |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
777 | escaped_displayname = g_markup_decode_text(displayname, -1); |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
778 | } else { |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
779 | escaped_displayname = passport; |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
780 | } |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
781 | contact_xml = g_strdup_printf(MSN_XML_ADD_CONTACT, escaped_displayname, passport); |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
782 | #endif |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
783 | |
|
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:
20562
diff
changeset
|
784 | purple_debug_info("MSNCL","Adding contact %s to contact list\n", passport); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
785 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
786 | contact_xml = g_strdup_printf(MSN_CONTACT_XML, passport); |
|
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:
20562
diff
changeset
|
787 | body = g_strdup_printf(MSN_ADD_CONTACT_TEMPLATE, contact_xml); |
|
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:
20562
diff
changeset
|
788 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
789 | msn_soap_message_send(contact->session, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
790 | msn_soap_message_new(MSN_CONTACT_ADD_SOAP_ACTION, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
791 | xmlnode_from_str(body, -1)), |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
792 | MSN_CONTACT_SERVER, MSN_ADDRESS_BOOK_POST_URL, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
793 | msn_add_contact_read_cb, state); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
794 | |
|
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:
20562
diff
changeset
|
795 | g_free(contact_xml); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
796 | g_free(body); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
797 | } |
|
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:
20562
diff
changeset
|
798 | |
|
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:
20562
diff
changeset
|
799 | static void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
800 | msn_add_contact_to_group_read_cb(MsnSoapMessage *req, MsnSoapMessage *resp, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
801 | gpointer data) |
|
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:
20562
diff
changeset
|
802 | { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
803 | MsnCallbackState *state = data; |
|
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:
20562
diff
changeset
|
804 | MsnUserList *userlist; |
|
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:
20562
diff
changeset
|
805 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
806 | g_return_if_fail(data != NULL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
807 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
808 | userlist = state->session->userlist; |
|
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:
20562
diff
changeset
|
809 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
810 | if (resp != NULL) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
811 | if (msn_userlist_add_buddy_to_group(userlist, state->who, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
812 | state->new_group_name)) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
813 | purple_debug_info("MSNCL", "Contact %s added to group %s successfully!\n", state->who, state->new_group_name); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
814 | } else { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
815 | purple_debug_info("MSNCL","Contact %s added to group %s successfully on server, but failed in the local list\n", state->who, state->new_group_name); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
816 | } |
|
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:
20562
diff
changeset
|
817 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
818 | if (state->action & MSN_ADD_BUDDY) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
819 | MsnUser *user = msn_userlist_find_user(userlist, state->who); |
|
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:
20562
diff
changeset
|
820 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
821 | if ( !msn_user_is_yahoo(state->session->account, state->who) ) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
822 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
823 | msn_userlist_add_buddy_to_list(userlist, state->who, MSN_LIST_AL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
824 | msn_userlist_add_buddy_to_list(userlist, state->who, MSN_LIST_FL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
825 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
826 | msn_notification_send_fqy(state->session, state->who); |
|
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:
20562
diff
changeset
|
827 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
828 | if (msn_userlist_user_is_in_list(user, MSN_LIST_PL)) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
829 | msn_del_contact_from_list(state->session->contact, NULL, state->who, MSN_LIST_PL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
830 | msn_callback_state_free(state); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
831 | return; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
832 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
833 | } |
|
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:
20562
diff
changeset
|
834 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
835 | if (state->action & MSN_MOVE_BUDDY) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
836 | msn_del_contact_from_group(state->session->contact, state->who, state->old_group_name); |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
837 | } |
|
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:
20562
diff
changeset
|
838 | } |
|
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:
20562
diff
changeset
|
839 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
840 | msn_callback_state_free(state); |
|
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:
20562
diff
changeset
|
841 | } |
|
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:
20562
diff
changeset
|
842 | |
|
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:
20562
diff
changeset
|
843 | void |
|
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:
20562
diff
changeset
|
844 | msn_add_contact_to_group(MsnContact *contact, MsnCallbackState *state, |
|
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:
20562
diff
changeset
|
845 | const char *passport, const char *groupId) |
|
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:
20562
diff
changeset
|
846 | { |
|
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:
20562
diff
changeset
|
847 | MsnUserList *userlist; |
|
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:
20562
diff
changeset
|
848 | MsnUser *user; |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
849 | gchar *body = NULL, *contact_xml; |
|
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:
20562
diff
changeset
|
850 | |
|
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:
20562
diff
changeset
|
851 | g_return_if_fail(passport != NULL); |
|
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:
20562
diff
changeset
|
852 | g_return_if_fail(groupId != NULL); |
|
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:
20562
diff
changeset
|
853 | |
|
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:
20562
diff
changeset
|
854 | g_return_if_fail(contact != NULL); |
|
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:
20562
diff
changeset
|
855 | g_return_if_fail(contact->session != NULL); |
|
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:
20562
diff
changeset
|
856 | g_return_if_fail(contact->session->userlist != NULL); |
|
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:
20562
diff
changeset
|
857 | |
|
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:
20562
diff
changeset
|
858 | userlist = contact->session->userlist; |
|
20567
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
859 | |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
860 | if (!strcmp(groupId, MSN_INDIVIDUALS_GROUP_ID) || !strcmp(groupId, MSN_NON_IM_GROUP_ID)) { |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
861 | |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
862 | user = msn_userlist_find_add_user(userlist, passport, passport); |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
863 | |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
864 | if (state->action & MSN_ADD_BUDDY) { |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
865 | msn_add_contact(contact, state, passport); |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
866 | return; |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
867 | } |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
868 | |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
869 | if (state->action & MSN_MOVE_BUDDY) { |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
870 | msn_user_add_group_id(user, groupId); |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
871 | msn_del_contact_from_group(contact, passport, state->old_group_name); |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
872 | } else { |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
873 | msn_callback_state_free(state); |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
874 | } |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
875 | |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
876 | return; |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
877 | } |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
878 | |
|
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:
20562
diff
changeset
|
879 | purple_debug_info("MSNCL", "Adding user %s to group %s\n", passport, |
|
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:
20562
diff
changeset
|
880 | msn_userlist_find_group_name(userlist, groupId)); |
|
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:
20562
diff
changeset
|
881 | |
|
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:
20562
diff
changeset
|
882 | user = msn_userlist_find_user(userlist, passport); |
|
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:
20562
diff
changeset
|
883 | if (user == NULL) { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
884 | purple_debug_warning("MSNCL", "Unable to retrieve user %s from the userlist!\n", passport); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
885 | msn_callback_state_free(state); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
886 | return; /* guess this never happened! */ |
|
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:
20562
diff
changeset
|
887 | } |
|
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:
20562
diff
changeset
|
888 | |
|
20933
81b69fb2d8b7
Prevent null pointer deref to fix CID 322.
Daniel Atallah <datallah@pidgin.im>
parents:
20878
diff
changeset
|
889 | if (user != NULL && user->uid != NULL) { |
|
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:
20562
diff
changeset
|
890 | contact_xml = g_strdup_printf(MSN_CONTACT_ID_XML, user->uid); |
|
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:
20562
diff
changeset
|
891 | } else { |
|
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:
20562
diff
changeset
|
892 | contact_xml = g_strdup_printf(MSN_CONTACT_XML, passport); |
|
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:
20562
diff
changeset
|
893 | } |
|
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:
20562
diff
changeset
|
894 | |
|
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:
20562
diff
changeset
|
895 | body = g_strdup_printf(MSN_ADD_CONTACT_GROUP_TEMPLATE, groupId, contact_xml); |
|
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:
20562
diff
changeset
|
896 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
897 | msn_soap_message_send(state->session, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
898 | msn_soap_message_new(MSN_ADD_CONTACT_GROUP_SOAP_ACTION, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
899 | xmlnode_from_str(body, -1)), |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
900 | MSN_CONTACT_SERVER, MSN_ADDRESS_BOOK_POST_URL, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
901 | msn_add_contact_to_group_read_cb, state); |
|
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:
20562
diff
changeset
|
902 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
903 | g_free(contact_xml); |
|
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:
20562
diff
changeset
|
904 | g_free(body); |
|
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:
20562
diff
changeset
|
905 | } |
|
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:
20562
diff
changeset
|
906 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
907 | static void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
908 | msn_delete_contact_read_cb(MsnSoapMessage *req, MsnSoapMessage *resp, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
909 | gpointer data) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
910 | { |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
911 | MsnCallbackState *state = data; |
|
20609
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
912 | |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
913 | if (resp != NULL) { |
|
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
914 | MsnUserList *userlist = state->session->userlist; |
|
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
915 | MsnUser *user = msn_userlist_find_user_with_id(userlist, state->uid); |
|
20585
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
916 | |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
917 | purple_debug_info("MSNCL","Delete contact successful\n"); |
|
20609
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
918 | |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
919 | if (user != NULL) { |
|
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
920 | msn_userlist_remove_user(userlist, user); |
|
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
921 | } |
|
20609
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
922 | } |
|
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
923 | |
|
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
924 | msn_callback_state_free(state); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
925 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
926 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
927 | /*delete a Contact*/ |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
928 | void |
|
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:
20562
diff
changeset
|
929 | msn_delete_contact(MsnContact *contact, const char *contactId) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
930 | { |
|
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:
20562
diff
changeset
|
931 | gchar *body = NULL; |
|
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:
20562
diff
changeset
|
932 | gchar *contact_id_xml = NULL ; |
|
20609
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
933 | MsnCallbackState *state; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
934 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
935 | g_return_if_fail(contactId != NULL); |
|
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:
20562
diff
changeset
|
936 | contact_id_xml = g_strdup_printf(MSN_CONTACT_ID_XML, contactId); |
|
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:
20562
diff
changeset
|
937 | |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
938 | state = msn_callback_state_new(contact->session); |
|
20609
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
939 | msn_callback_state_set_uid(state, contactId); |
|
b92d0b5ab89d
Make use of the GQueue in MsnSoapConn to manage the SOAP requests, allowing them to work perfectly even when dispatching multiple requests at once.
Carlos Silva <typ0@pidgin.im>
parents:
20585
diff
changeset
|
940 | |
|
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:
20562
diff
changeset
|
941 | /* build SOAP request */ |
|
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:
20562
diff
changeset
|
942 | purple_debug_info("MSNCL","Deleting contact with contactId: %s\n", contactId); |
|
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:
20562
diff
changeset
|
943 | body = g_strdup_printf(MSN_DEL_CONTACT_TEMPLATE, contact_id_xml); |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
944 | msn_soap_message_send(contact->session, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
945 | msn_soap_message_new(MSN_CONTACT_DEL_SOAP_ACTION, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
946 | xmlnode_from_str(body, -1)), |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
947 | MSN_CONTACT_SERVER, MSN_ADDRESS_BOOK_POST_URL, |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
948 | msn_delete_contact_read_cb, state); |
|
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:
20562
diff
changeset
|
949 | |
|
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:
20562
diff
changeset
|
950 | g_free(contact_id_xml); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
951 | g_free(body); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
952 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
953 | |
|
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:
20562
diff
changeset
|
954 | static void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
955 | msn_del_contact_from_group_read_cb(MsnSoapMessage *req, MsnSoapMessage *resp, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
956 | gpointer data) |
|
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:
20562
diff
changeset
|
957 | { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
958 | MsnCallbackState *state = data; |
|
20585
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
959 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
960 | if (resp != NULL) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
961 | if (msn_userlist_rem_buddy_from_group(state->session->userlist, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
962 | state->who, state->old_group_name)) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
963 | purple_debug_info("MSNCL", "Contact %s deleted successfully from group %s\n", state->who, state->old_group_name); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
964 | } else { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
965 | purple_debug_info("MSNCL", "Contact %s deleted successfully from group %s in the server, but failed in the local list\n", state->who, state->old_group_name); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
966 | } |
|
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:
20562
diff
changeset
|
967 | } |
|
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:
20562
diff
changeset
|
968 | |
|
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:
20562
diff
changeset
|
969 | msn_callback_state_free(state); |
|
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:
20562
diff
changeset
|
970 | } |
|
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:
20562
diff
changeset
|
971 | |
|
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:
20562
diff
changeset
|
972 | void |
|
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:
20562
diff
changeset
|
973 | msn_del_contact_from_group(MsnContact *contact, const char *passport, const char *group_name) |
|
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:
20562
diff
changeset
|
974 | { |
|
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:
20562
diff
changeset
|
975 | MsnUserList * userlist; |
|
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:
20562
diff
changeset
|
976 | MsnUser *user; |
|
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:
20562
diff
changeset
|
977 | MsnCallbackState *state; |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
978 | gchar *body, *contact_id_xml; |
|
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:
20562
diff
changeset
|
979 | const gchar *groupId; |
|
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:
20562
diff
changeset
|
980 | |
|
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:
20562
diff
changeset
|
981 | g_return_if_fail(passport != NULL); |
|
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:
20562
diff
changeset
|
982 | g_return_if_fail(group_name != NULL); |
|
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:
20562
diff
changeset
|
983 | g_return_if_fail(contact != NULL); |
|
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:
20562
diff
changeset
|
984 | g_return_if_fail(contact->session != NULL); |
|
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:
20562
diff
changeset
|
985 | g_return_if_fail(contact->session->userlist != NULL); |
|
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:
20562
diff
changeset
|
986 | |
|
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:
20562
diff
changeset
|
987 | userlist = contact->session->userlist; |
|
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:
20562
diff
changeset
|
988 | |
|
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:
20562
diff
changeset
|
989 | groupId = msn_userlist_find_group_id(userlist, group_name); |
|
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:
20562
diff
changeset
|
990 | if (groupId != NULL) { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
991 | purple_debug_info("MSNCL", "Deleting user %s from group %s\n", passport, group_name); |
|
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:
20562
diff
changeset
|
992 | } else { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
993 | purple_debug_warning("MSNCL", "Unable to retrieve group id from group %s !\n", group_name); |
|
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:
20562
diff
changeset
|
994 | return; |
|
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:
20562
diff
changeset
|
995 | } |
|
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:
20562
diff
changeset
|
996 | |
|
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:
20562
diff
changeset
|
997 | user = msn_userlist_find_user(userlist, passport); |
|
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:
20562
diff
changeset
|
998 | |
|
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:
20562
diff
changeset
|
999 | if (user == NULL) { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1000 | purple_debug_warning("MSNCL", "Unable to retrieve user from passport %s!\n", passport); |
|
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:
20562
diff
changeset
|
1001 | return; |
|
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:
20562
diff
changeset
|
1002 | } |
|
20567
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1003 | |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1004 | if ( !strcmp(groupId, MSN_INDIVIDUALS_GROUP_ID) || !strcmp(groupId, MSN_NON_IM_GROUP_ID)) { |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1005 | msn_user_remove_group_id(user, groupId); |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1006 | return; |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1007 | } |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1008 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1009 | state = msn_callback_state_new(contact->session); |
|
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:
20562
diff
changeset
|
1010 | msn_callback_state_set_who(state, passport); |
|
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:
20562
diff
changeset
|
1011 | msn_callback_state_set_guid(state, groupId); |
|
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:
20562
diff
changeset
|
1012 | msn_callback_state_set_old_group_name(state, group_name); |
|
20728
3b7c8c45f843
A few leak plugs, some unnecessary allocation prevention, null pointer deref fixes and general robustness fixes. I'm sure there is more to do here, I got tired... Fixes #3308
Daniel Atallah <datallah@pidgin.im>
parents:
20609
diff
changeset
|
1013 | |
|
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:
20562
diff
changeset
|
1014 | contact_id_xml = g_strdup_printf(MSN_CONTACT_ID_XML, user->uid); |
|
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:
20562
diff
changeset
|
1015 | body = g_strdup_printf(MSN_CONTACT_DEL_GROUP_TEMPLATE, contact_id_xml, groupId); |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1016 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1017 | msn_soap_message_send(contact->session, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1018 | msn_soap_message_new(MSN_CONTACT_DEL_GROUP_SOAP_ACTION, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1019 | xmlnode_from_str(body, -1)), |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1020 | MSN_CONTACT_SERVER, MSN_ADDRESS_BOOK_POST_URL, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1021 | msn_del_contact_from_group_read_cb, state); |
|
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:
20562
diff
changeset
|
1022 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1023 | g_free(contact_id_xml); |
|
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:
20562
diff
changeset
|
1024 | g_free(body); |
|
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:
20562
diff
changeset
|
1025 | } |
|
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:
20562
diff
changeset
|
1026 | |
|
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:
20562
diff
changeset
|
1027 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1028 | static void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1029 | msn_update_contact_read_cb(MsnSoapMessage *req, MsnSoapMessage *resp, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1030 | gpointer data) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1031 | { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1032 | if (resp) |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1033 | purple_debug_info("MSN CL","Contact updated successfully\n"); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1034 | else |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1035 | purple_debug_info("MSN CL","Contact updated successfully\n"); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1036 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1037 | |
|
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:
20562
diff
changeset
|
1038 | /* Update a contact's nickname */ |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1039 | void |
|
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:
20562
diff
changeset
|
1040 | msn_update_contact(MsnContact *contact, const char* nickname) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1041 | { |
|
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:
20562
diff
changeset
|
1042 | gchar *body = NULL, *escaped_nickname; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1043 | |
|
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:
20562
diff
changeset
|
1044 | purple_debug_info("MSN CL","Update contact information with new friendly name: %s\n", nickname); |
|
20733
a179242f6bef
Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents:
20728
diff
changeset
|
1045 | |
|
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:
20562
diff
changeset
|
1046 | escaped_nickname = g_markup_escape_text(nickname, -1); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1047 | |
|
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:
20562
diff
changeset
|
1048 | body = g_strdup_printf(MSN_CONTACT_UPDATE_TEMPLATE, escaped_nickname); |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1049 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1050 | msn_soap_message_send(contact->session, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1051 | msn_soap_message_new(MSN_CONTACT_UPDATE_SOAP_ACTION, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1052 | xmlnode_from_str(body, -1)), |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1053 | MSN_CONTACT_SERVER, MSN_ADDRESS_BOOK_POST_URL, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1054 | msn_update_contact_read_cb, NULL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1055 | |
|
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:
20562
diff
changeset
|
1056 | g_free(escaped_nickname); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1057 | g_free(body); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1058 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1059 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1060 | static void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1061 | msn_del_contact_from_list_read_cb(MsnSoapMessage *req, MsnSoapMessage *resp, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1062 | gpointer data) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1063 | { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1064 | MsnCallbackState *state = data; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1065 | MsnSession *session = state->session; |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1066 | |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1067 | if (resp != NULL) { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1068 | purple_debug_info("MSN CL", "Contact %s deleted successfully from %s list on server!\n", state->who, MsnMemberRole[state->list_id]); |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1069 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1070 | if (state->list_id == MSN_LIST_PL) { |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1071 | MsnUser *user = msn_userlist_find_user(session->userlist, state->who); |
|
20850
8905d796644b
Keep MsnUser->list_op in sync.
Carlos Silva <typ0@pidgin.im>
parents:
20849
diff
changeset
|
1072 | |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1073 | if (user != NULL) |
|
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1074 | msn_user_unset_op(user, MSN_LIST_PL_OP); |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1075 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1076 | msn_add_contact_to_list(session->contact, state, state->who, MSN_LIST_RL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1077 | } else if (state->list_id == MSN_LIST_AL) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1078 | purple_privacy_permit_remove(session->account, state->who, TRUE); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1079 | msn_add_contact_to_list(session->contact, NULL, state->who, MSN_LIST_BL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1080 | } else if (state->list_id == MSN_LIST_BL) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1081 | purple_privacy_deny_remove(session->account, state->who, TRUE); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1082 | msn_add_contact_to_list(session->contact, NULL, state->who, MSN_LIST_AL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1083 | } |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1084 | } |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1085 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1086 | msn_callback_state_free(state); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1087 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1088 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1089 | void |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1090 | msn_del_contact_from_list(MsnContact *contact, MsnCallbackState *state, |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1091 | const gchar *passport, const MsnListId list) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1092 | { |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1093 | gchar *body = NULL, *member = NULL; |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1094 | MsnSoapPartnerScenario partner_scenario; |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1095 | MsnUser *user; |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1096 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1097 | g_return_if_fail(contact != NULL); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1098 | g_return_if_fail(passport != NULL); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1099 | g_return_if_fail(list < 5); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1100 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1101 | purple_debug_info("MSN CL", "Deleting contact %s from %s list\n", passport, MsnMemberRole[list]); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1102 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1103 | if (state == NULL) { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1104 | state = msn_callback_state_new(contact->session); |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1105 | } |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1106 | msn_callback_state_set_list_id(state, list); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1107 | msn_callback_state_set_who(state, passport); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1108 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1109 | if (list == MSN_LIST_PL) { |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1110 | g_return_if_fail(contact->session != NULL); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1111 | g_return_if_fail(contact->session->userlist != NULL); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1112 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1113 | user = msn_userlist_find_user(contact->session->userlist, passport); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1114 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1115 | partner_scenario = MSN_PS_CONTACT_API; |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1116 | member = g_strdup_printf(MSN_MEMBER_MEMBERSHIPID_XML, user->membership_id[MSN_LIST_PL]); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1117 | } else { |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1118 | /* list == MSN_LIST_AL || list == MSN_LIST_BL */ |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1119 | partner_scenario = MSN_PS_BLOCK_UNBLOCK; |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1120 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1121 | member = g_strdup_printf(MSN_MEMBER_PASSPORT_XML, passport); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1122 | } |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1123 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1124 | body = g_strdup_printf( MSN_CONTACT_DELECT_FROM_LIST_TEMPLATE, |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1125 | MsnSoapPartnerScenarioText[partner_scenario], |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1126 | MsnMemberRole[list], |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1127 | member); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1128 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1129 | msn_soap_message_send(contact->session, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1130 | msn_soap_message_new(MSN_DELETE_MEMBER_FROM_LIST_SOAP_ACTION, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1131 | xmlnode_from_str(body, -1)), |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1132 | MSN_CONTACT_SERVER, MSN_SHARE_POST_URL, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1133 | msn_del_contact_from_list_read_cb, state); |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1134 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1135 | g_free(member); |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1136 | g_free(body); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1137 | } |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1138 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1139 | static void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1140 | msn_add_contact_to_list_read_cb(MsnSoapMessage *req, MsnSoapMessage *resp, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1141 | gpointer data) |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1142 | { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1143 | MsnCallbackState *state = data; |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1144 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1145 | g_return_if_fail(state != NULL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1146 | g_return_if_fail(state->session != NULL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1147 | g_return_if_fail(state->session->contact != NULL); |
|
20585
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
1148 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1149 | if (resp != NULL) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1150 | purple_debug_info("MSN CL", "Contact %s added successfully to %s list on server!\n", state->who, MsnMemberRole[state->list_id]); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1151 | |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1152 | if (state->list_id == MSN_LIST_RL) { |
|
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1153 | MsnUser *user = msn_userlist_find_user(state->session->userlist, state->who); |
|
20850
8905d796644b
Keep MsnUser->list_op in sync.
Carlos Silva <typ0@pidgin.im>
parents:
20849
diff
changeset
|
1154 | |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1155 | if (user != NULL) { |
|
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1156 | msn_user_set_op(user, MSN_LIST_RL_OP); |
|
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1157 | } |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1158 | |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1159 | if (state->action & MSN_DENIED_BUDDY) { |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1160 | |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1161 | msn_add_contact_to_list(state->session->contact, NULL, state->who, MSN_LIST_BL); |
|
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1162 | } else if (state->list_id == MSN_LIST_AL) { |
|
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1163 | purple_privacy_permit_add(state->session->account, state->who, TRUE); |
|
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1164 | } else if (state->list_id == MSN_LIST_BL) { |
|
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1165 | purple_privacy_deny_add(state->session->account, state->who, TRUE); |
|
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1166 | } |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1167 | } |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1168 | } |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1169 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1170 | msn_callback_state_free(state); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1171 | } |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1172 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1173 | void |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1174 | msn_add_contact_to_list(MsnContact *contact, MsnCallbackState *state, |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1175 | const gchar *passport, const MsnListId list) |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1176 | { |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1177 | gchar *body = NULL, *member = NULL; |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1178 | MsnSoapPartnerScenario partner_scenario; |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1179 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1180 | g_return_if_fail(contact != NULL); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1181 | g_return_if_fail(passport != NULL); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1182 | g_return_if_fail(list < 5); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1183 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1184 | purple_debug_info("MSN CL", "Adding contact %s to %s list\n", passport, MsnMemberRole[list]); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1185 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1186 | if (state == NULL) { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1187 | state = msn_callback_state_new(contact->session); |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1188 | } |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1189 | msn_callback_state_set_list_id(state, list); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1190 | msn_callback_state_set_who(state, passport); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1191 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1192 | partner_scenario = (list == MSN_LIST_RL) ? MSN_PS_CONTACT_API : MSN_PS_BLOCK_UNBLOCK; |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1193 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1194 | member = g_strdup_printf(MSN_MEMBER_PASSPORT_XML, passport); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1195 | |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1196 | body = g_strdup_printf(MSN_CONTACT_ADD_TO_LIST_TEMPLATE, |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1197 | MsnSoapPartnerScenarioText[partner_scenario], |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1198 | MsnMemberRole[list], |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1199 | member); |
|
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1200 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1201 | msn_soap_message_send(contact->session, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1202 | msn_soap_message_new(MSN_ADD_MEMBER_TO_LIST_SOAP_ACTION, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1203 | xmlnode_from_str(body, -1)), |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1204 | MSN_CONTACT_SERVER, MSN_SHARE_POST_URL, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1205 | msn_add_contact_to_list_read_cb, state); |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1206 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1207 | g_free(member); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1208 | g_free(body); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1209 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1210 | |
|
20510
cba185e9a346
Fix a compile warning by #if 0'ing out some unused code
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20486
diff
changeset
|
1211 | #if 0 |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1212 | static void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1213 | msn_gleams_read_cb(MsnSoapMessage *req, MsnSoapMessage *resp, gpointer data) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1214 | { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1215 | if (resp != NULL) |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1216 | purple_debug_info("MSNP14","Gleams read done\n"); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1217 | else |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1218 | purple_debug_info("MSNP14","Gleams read failed\n"); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1219 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1220 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1221 | /*get the gleams info*/ |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1222 | void |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1223 | msn_get_gleams(MsnContact *contact) |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1224 | { |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1225 | MsnSoapReq *soap_request; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1226 | |
|
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:
20546
diff
changeset
|
1227 | purple_debug_info("MSNP14","msn get gleams info...\n"); |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1228 | msn_soap_message_send(contact->session, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1229 | msn_soap_message_new(MSN_GET_GLEAMS_SOAP_ACTION, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1230 | xmlnode_from_str(MSN_GLEAMS_TEMPLATE, -1)), |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1231 | MSN_CONTACT_SERVER, MSN_ADDRESS_BOOK_POST_URL, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1232 | msn_gleams_read_cb, NULL); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1233 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1234 | #endif |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1235 | |
|
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:
20562
diff
changeset
|
1236 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1237 | /*************************************************************** |
|
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:
20562
diff
changeset
|
1238 | * Group Operations |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1239 | ***************************************************************/ |
|
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:
20562
diff
changeset
|
1240 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1241 | static void |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1242 | msn_group_read_cb(MsnSoapMessage *req, MsnSoapMessage *resp, gpointer data) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1243 | { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1244 | MsnCallbackState *state = data; |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
1245 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1246 | purple_debug_info("MSNCL", "Group request successful.\n"); |
|
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:
20562
diff
changeset
|
1247 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1248 | g_return_if_fail(state->session != NULL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1249 | g_return_if_fail(state->session->userlist != NULL); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1250 | g_return_if_fail(state->session->contact != NULL); |
|
20585
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
1251 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1252 | if (resp == NULL) { |
|
20585
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
1253 | msn_callback_state_free(state); |
|
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
1254 | return; |
|
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
1255 | } |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1256 | |
|
20585
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
1257 | if (state) { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1258 | MsnSession *session = state->session; |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1259 | MsnUserList *userlist = session->userlist; |
|
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:
20562
diff
changeset
|
1260 | |
|
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:
20562
diff
changeset
|
1261 | if (state->action & MSN_RENAME_GROUP) { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1262 | msn_userlist_rename_group_id(session->userlist, |
|
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:
20562
diff
changeset
|
1263 | state->guid, |
|
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:
20562
diff
changeset
|
1264 | state->new_group_name); |
|
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:
20562
diff
changeset
|
1265 | } |
|
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:
20562
diff
changeset
|
1266 | |
|
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:
20562
diff
changeset
|
1267 | if (state->action & MSN_ADD_GROUP) { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1268 | /* the response is taken from |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1269 | http://telepathy.freedesktop.org/wiki/Pymsn/MSNP/ContactListActions |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1270 | should copy it to msnpiki some day */ |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1271 | xmlnode *guid_node = msn_soap_xml_get(resp->xml, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1272 | "Body/ABGroupAddResponse/ABGroupAddResult/guid"); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1273 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1274 | if (guid_node) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1275 | char *guid = xmlnode_get_data(guid_node); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1276 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1277 | /* create and add the new group to the userlist */ |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1278 | purple_debug_info("MSNCL", "Adding group %s with guid = %s to the userlist\n", state->new_group_name, guid); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1279 | msn_group_new(session->userlist, guid, state->new_group_name); |
|
20560
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
1280 | |
|
21383
643d347b23fb
initialize a variable to NULL, and not crash when you move a buddy to a new
Ka-Hing Cheung <khc@pidgin.im>
parents:
21382
diff
changeset
|
1281 | g_free(guid); |
|
643d347b23fb
initialize a variable to NULL, and not crash when you move a buddy to a new
Ka-Hing Cheung <khc@pidgin.im>
parents:
21382
diff
changeset
|
1282 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1283 | if (state->action & MSN_ADD_BUDDY) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1284 | msn_userlist_add_buddy(session->userlist, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1285 | state->who, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1286 | state->new_group_name); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1287 | } else if (state->action & MSN_MOVE_BUDDY) { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1288 | msn_add_contact_to_group(session->contact, state, state->who, guid); |
|
21383
643d347b23fb
initialize a variable to NULL, and not crash when you move a buddy to a new
Ka-Hing Cheung <khc@pidgin.im>
parents:
21382
diff
changeset
|
1289 | return; |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1290 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1291 | } else { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1292 | purple_debug_info("MSNCL", "Adding group %s failed\n", |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1293 | state->new_group_name); |
|
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:
20562
diff
changeset
|
1294 | } |
|
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:
20562
diff
changeset
|
1295 | } |
|
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:
20562
diff
changeset
|
1296 | |
|
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:
20562
diff
changeset
|
1297 | if (state->action & MSN_DEL_GROUP) { |
|
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:
20562
diff
changeset
|
1298 | GList *l; |
|
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:
20562
diff
changeset
|
1299 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1300 | msn_userlist_remove_group_id(session->userlist, state->guid); |
|
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:
20562
diff
changeset
|
1301 | for (l = userlist->users; l != NULL; l = l->next) { |
|
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:
20562
diff
changeset
|
1302 | msn_user_remove_group_id( (MsnUser *)l->data, state->guid); |
|
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:
20562
diff
changeset
|
1303 | } |
|
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:
20562
diff
changeset
|
1304 | } |
|
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:
20562
diff
changeset
|
1305 | |
|
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:
20562
diff
changeset
|
1306 | msn_callback_state_free(state); |
|
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:
20562
diff
changeset
|
1307 | } |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1308 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1309 | |
|
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:
20562
diff
changeset
|
1310 | /* add group */ |
|
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:
20562
diff
changeset
|
1311 | void |
|
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:
20562
diff
changeset
|
1312 | msn_add_group(MsnSession *session, MsnCallbackState *state, const char* group_name) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1313 | { |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1314 | char *body = NULL; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1315 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1316 | g_return_if_fail(session != NULL); |
|
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:
20562
diff
changeset
|
1317 | g_return_if_fail(group_name != NULL); |
|
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:
20562
diff
changeset
|
1318 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1319 | purple_debug_info("MSNCL","Adding group %s to contact list.\n", group_name); |
|
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:
20562
diff
changeset
|
1320 | |
|
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:
20562
diff
changeset
|
1321 | if (state == NULL) { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1322 | state = msn_callback_state_new(session); |
|
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:
20562
diff
changeset
|
1323 | } |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1324 | |
|
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:
20562
diff
changeset
|
1325 | msn_callback_state_set_action(state, MSN_ADD_GROUP); |
|
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:
20562
diff
changeset
|
1326 | msn_callback_state_set_new_group_name(state, group_name); |
|
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:
20562
diff
changeset
|
1327 | |
|
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:
20562
diff
changeset
|
1328 | /* escape group name's html special chars so it can safely be sent |
|
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:
20562
diff
changeset
|
1329 | * in a XML SOAP request |
|
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:
20562
diff
changeset
|
1330 | */ |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1331 | body = g_markup_printf_escaped(MSN_GROUP_ADD_TEMPLATE, group_name); |
|
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:
20562
diff
changeset
|
1332 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1333 | msn_soap_message_send(session, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1334 | msn_soap_message_new(MSN_GROUP_ADD_SOAP_ACTION, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1335 | xmlnode_from_str(body, -1)), |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1336 | MSN_CONTACT_SERVER, MSN_ADDRESS_BOOK_POST_URL, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1337 | msn_group_read_cb, state); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1338 | |
|
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:
20562
diff
changeset
|
1339 | g_free(body); |
|
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:
20562
diff
changeset
|
1340 | } |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1341 | |
|
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:
20562
diff
changeset
|
1342 | /* delete group */ |
|
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:
20562
diff
changeset
|
1343 | void |
|
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:
20562
diff
changeset
|
1344 | msn_del_group(MsnSession *session, const gchar *group_name) |
|
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:
20562
diff
changeset
|
1345 | { |
|
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:
20562
diff
changeset
|
1346 | MsnCallbackState *state; |
|
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:
20562
diff
changeset
|
1347 | char *body = NULL; |
|
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:
20562
diff
changeset
|
1348 | const gchar *guid; |
|
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:
20562
diff
changeset
|
1349 | |
|
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:
20562
diff
changeset
|
1350 | g_return_if_fail(session != NULL); |
|
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:
20562
diff
changeset
|
1351 | |
|
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:
20562
diff
changeset
|
1352 | g_return_if_fail(group_name != NULL); |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1353 | purple_debug_info("MSNCL","Deleting group %s from contact list\n", group_name); |
|
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:
20562
diff
changeset
|
1354 | |
|
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:
20562
diff
changeset
|
1355 | guid = msn_userlist_find_group_id(session->userlist, group_name); |
|
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:
20562
diff
changeset
|
1356 | |
|
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:
20562
diff
changeset
|
1357 | /* if group uid we need to del is NULL, |
|
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:
20562
diff
changeset
|
1358 | * we need to delete nothing |
|
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:
20562
diff
changeset
|
1359 | */ |
|
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:
20562
diff
changeset
|
1360 | if (guid == NULL) { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1361 | purple_debug_info("MSNCL", "Group %s guid not found, returning.\n", group_name); |
|
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:
20562
diff
changeset
|
1362 | return; |
|
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:
20562
diff
changeset
|
1363 | } |
|
20567
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1364 | |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1365 | if ( !strcmp(guid, MSN_INDIVIDUALS_GROUP_ID) || !strcmp(guid, MSN_NON_IM_GROUP_ID) ) { |
|
20569
66628c75dada
Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents:
20567
diff
changeset
|
1366 | // XXX add back PurpleGroup since it isn't really removed in the server? |
|
20567
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1367 | return; |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1368 | } |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1369 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1370 | state = msn_callback_state_new(session); |
|
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:
20562
diff
changeset
|
1371 | msn_callback_state_set_action(state, MSN_DEL_GROUP); |
|
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:
20562
diff
changeset
|
1372 | msn_callback_state_set_guid(state, guid); |
|
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:
20562
diff
changeset
|
1373 | |
|
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:
20562
diff
changeset
|
1374 | body = g_strdup_printf(MSN_GROUP_DEL_TEMPLATE, guid); |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1375 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1376 | msn_soap_message_send(session, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1377 | msn_soap_message_new(MSN_GROUP_DEL_SOAP_ACTION, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1378 | xmlnode_from_str(body, -1)), |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1379 | MSN_CONTACT_SERVER, MSN_ADDRESS_BOOK_POST_URL, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1380 | msn_group_read_cb, state); |
|
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:
20562
diff
changeset
|
1381 | |
|
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:
20562
diff
changeset
|
1382 | g_free(body); |
|
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:
20562
diff
changeset
|
1383 | } |
|
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:
20562
diff
changeset
|
1384 | |
|
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:
20562
diff
changeset
|
1385 | /* rename group */ |
|
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:
20562
diff
changeset
|
1386 | void |
|
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:
20562
diff
changeset
|
1387 | msn_contact_rename_group(MsnSession *session, const char *old_group_name, const char *new_group_name) |
|
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:
20562
diff
changeset
|
1388 | { |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1389 | gchar *body = NULL; |
|
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:
20562
diff
changeset
|
1390 | const gchar * guid; |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1391 | MsnCallbackState *state; |
|
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:
20562
diff
changeset
|
1392 | |
|
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:
20562
diff
changeset
|
1393 | g_return_if_fail(session != NULL); |
|
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:
20562
diff
changeset
|
1394 | g_return_if_fail(session->userlist != NULL); |
|
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:
20562
diff
changeset
|
1395 | g_return_if_fail(old_group_name != NULL); |
|
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:
20562
diff
changeset
|
1396 | g_return_if_fail(new_group_name != NULL); |
|
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:
20562
diff
changeset
|
1397 | |
|
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:
20562
diff
changeset
|
1398 | purple_debug_info("MSN CL", "Renaming group %s to %s.\n", old_group_name, new_group_name); |
|
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:
20562
diff
changeset
|
1399 | |
|
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:
20562
diff
changeset
|
1400 | guid = msn_userlist_find_group_id(session->userlist, old_group_name); |
|
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:
20562
diff
changeset
|
1401 | if (guid == NULL) |
|
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:
20562
diff
changeset
|
1402 | return; |
|
20567
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1403 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1404 | state = msn_callback_state_new(session); |
|
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:
20562
diff
changeset
|
1405 | msn_callback_state_set_guid(state, guid); |
|
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:
20562
diff
changeset
|
1406 | msn_callback_state_set_new_group_name(state, new_group_name); |
|
20567
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1407 | |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1408 | if ( !strcmp(guid, MSN_INDIVIDUALS_GROUP_ID) || !strcmp(guid, MSN_NON_IM_GROUP_ID) ) { |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1409 | msn_add_group(session, state, new_group_name); |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1410 | // XXX move every buddy there (we probably need to fix concurrent SOAP reqs first) |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1411 | } |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1412 | |
|
2417aff6ff3b
Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents:
20564
diff
changeset
|
1413 | msn_callback_state_set_action(state, MSN_RENAME_GROUP); |
|
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:
20562
diff
changeset
|
1414 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1415 | body = g_markup_printf_escaped(MSN_GROUP_RENAME_TEMPLATE, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1416 | guid, new_group_name); |
|
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:
20562
diff
changeset
|
1417 | |
|
21368
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1418 | msn_soap_message_send(session, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1419 | msn_soap_message_new(MSN_GROUP_RENAME_SOAP_ACTION, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1420 | xmlnode_from_str(body, -1)), |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1421 | MSN_CONTACT_SERVER, MSN_ADDRESS_BOOK_POST_URL, |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1422 | msn_group_read_cb, state); |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1423 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1424 | g_free(body); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1425 | } |