Fri, 23 Oct 2009 05:43:50 +0000
The MSN servers are a bit more strict about what's allowed in emails than
the libpurple utility function. Usually, they just return an error about
the specific email and continue on with the rest, but for colons, slashes,
question marks, and equal signs, they just disconnect you.
So, when adding new contacts, or checking existing contacts in the address
book, ignore those with slashes, question marks, and equal signs (colon is
already tested).
References #9505.
Fixes #10549.
|
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 |
|
28345
57a838c454b0
Oops, Elliott correctly pointed out this was wrong...
Paul Aurich <darkrain42@pidgin.im>
parents:
28323
diff
changeset
|
24 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
|
20478
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" |
|
23819
c3bbef4646b1
Clean up some MSN SOAP stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23790
diff
changeset
|
31 | #include "soap.h" |
|
23757
bf5c8c3d6374
Patch 3 from Qulogic, this one updates contact list actions to use ticket
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
21950
diff
changeset
|
32 | #include "nexus.h" |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
33 | |
|
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
|
34 | 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
|
35 | { |
|
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
|
36 | "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
|
37 | "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
|
38 | "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
|
39 | "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
|
40 | "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
|
41 | }; |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
42 | |
|
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
|
43 | 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
|
44 | { |
|
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 | "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
|
46 | "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
|
47 | "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
|
48 | "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
|
49 | "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
|
50 | }; |
|
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
|
51 | |
|
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
|
52 | typedef struct { |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
53 | 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
|
54 | 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
|
55 | } 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
|
56 | |
|
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
|
57 | 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
|
58 | 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
|
59 | { |
|
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
|
60 | 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
|
61 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
62 | 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
|
63 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
64 | return state; |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
65 | } |
|
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
|
66 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
67 | MsnCallbackState * |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
68 | msn_callback_state_dup(MsnCallbackState *state) |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
69 | { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
70 | MsnCallbackState *new_state = g_new0(MsnCallbackState, 1); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
71 | |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
72 | new_state->session = state->session; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
73 | new_state->who = g_strdup(state->who); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
74 | new_state->uid = g_strdup(state->uid); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
75 | new_state->old_group_name = g_strdup(state->old_group_name); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
76 | new_state->new_group_name = g_strdup(state->new_group_name); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
77 | new_state->guid = g_strdup(state->guid); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
78 | /* The rest should be made new */ |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
79 | |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
80 | return new_state; |
|
23819
c3bbef4646b1
Clean up some MSN SOAP stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23790
diff
changeset
|
81 | } |
|
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
|
82 | |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | 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
|
84 | 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
|
85 | { |
|
20585
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
86 | 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
|
87 | 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
|
88 | |
|
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
|
89 | 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
|
90 | 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
|
91 | 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
|
92 | 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
|
93 | g_free(state->guid); |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
94 | xmlnode_free(state->body); |
|
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
|
95 | |
|
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
|
96 | 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
|
97 | } |
|
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
|
98 | |
|
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
|
99 | 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
|
100 | 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
|
101 | { |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | 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
|
103 | |
|
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
|
104 | 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
|
105 | 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
|
106 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | 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
|
109 | 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
|
110 | { |
|
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
|
111 | 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
|
112 | |
|
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
|
113 | 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
|
114 | 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
|
115 | } |
|
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 | 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
|
118 | 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
|
119 | { |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | 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
|
121 | |
|
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
|
122 | 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
|
123 | 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
|
124 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | 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
|
127 | 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
|
128 | { |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | 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
|
130 | |
|
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
|
131 | 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
|
132 | 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
|
133 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | 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
|
136 | 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
|
137 | { |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | 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
|
139 | |
|
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
|
140 | 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
|
141 | 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
|
142 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | 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
|
146 | 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
|
147 | { |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | 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
|
149 | |
|
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
|
150 | 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
|
151 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | 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
|
154 | 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
|
155 | { |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | 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
|
157 | |
|
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
|
158 | 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
|
159 | } |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
160 | |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
161 | /*************************************************************** |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
162 | * General SOAP handling |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
163 | ***************************************************************/ |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
164 | |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
165 | static const char * |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
166 | msn_contact_operation_str(MsnCallbackAction action) |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
167 | { |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
168 | /* Make sure this is large enough when adding more */ |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
169 | static char buf[BUF_LEN]; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
170 | buf[0] = '\0'; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
171 | |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
172 | if (action & MSN_ADD_BUDDY) |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
173 | strcat(buf, "Adding Buddy,"); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
174 | if (action & MSN_MOVE_BUDDY) |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
175 | strcat(buf, "Moving Buddy,"); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
176 | if (action & MSN_ACCEPTED_BUDDY) |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
177 | strcat(buf, "Accepted Buddy,"); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
178 | if (action & MSN_DENIED_BUDDY) |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
179 | strcat(buf, "Denied Buddy,"); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
180 | if (action & MSN_ADD_GROUP) |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
181 | strcat(buf, "Adding Group,"); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
182 | if (action & MSN_DEL_GROUP) |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
183 | strcat(buf, "Deleting Group,"); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
184 | if (action & MSN_RENAME_GROUP) |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
185 | strcat(buf, "Renaming Group,"); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
186 | if (action & MSN_UPDATE_INFO) |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
187 | strcat(buf, "Updating Contact Info,"); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
188 | |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
189 | return buf; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
190 | } |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
191 | |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
192 | static gboolean msn_contact_request(MsnCallbackState *state); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
193 | |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
194 | static void |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
195 | msn_contact_request_cb(MsnSoapMessage *req, MsnSoapMessage *resp, |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
196 | gpointer data) |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
197 | { |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
198 | MsnCallbackState *state = data; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
199 | xmlnode *fault; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
200 | char *faultcode_str; |
|
25614
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
201 | xmlnode *cachekey; |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
202 | char *changed; |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
203 | |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
204 | if (resp == NULL) { |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
205 | purple_debug_error("msn", |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
206 | "Operation {%s} failed. No response received from server.\n", |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
207 | msn_contact_operation_str(state->action)); |
|
25634
a35f847867f1
Set an error if you're unable to connect to the contact server, or are not
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25614
diff
changeset
|
208 | msn_session_set_error(state->session, MSN_ERROR_BAD_BLIST, NULL); |
|
28644
7e62a6f19d38
Fix a leak, and a series of typos.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
28614
diff
changeset
|
209 | msn_callback_state_free(state); |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
210 | return; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
211 | } |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
212 | |
|
25614
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
213 | /* Update CacheKey if necessary */ |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
214 | cachekey = xmlnode_get_child(resp->xml, "Header/ServiceHeader/CacheKeyChanged"); |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
215 | if (cachekey != NULL) { |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
216 | changed = xmlnode_get_data(cachekey); |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
217 | if (changed && !strcmp(changed, "true")) { |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
218 | cachekey = xmlnode_get_child(resp->xml, "Header/ServiceHeader/CacheKey"); |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
219 | g_free(state->session->abch_cachekey); |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
220 | state->session->abch_cachekey = xmlnode_get_data(cachekey); |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
221 | purple_debug_info("msn", "Updated CacheKey for %s to '%s'.\n", |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
222 | purple_account_get_username(state->session->account), |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
223 | state->session->abch_cachekey); |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
224 | } |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
225 | g_free(changed); |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
226 | } |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
227 | |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
228 | fault = xmlnode_get_child(resp->xml, "Body/Fault"); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
229 | |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
230 | if (fault == NULL) { |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
231 | /* No errors */ |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
232 | if (state->cb) |
|
25611
c85beaeb4538
This casting is no longer necessary.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25537
diff
changeset
|
233 | state->cb(req, resp, data); |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
234 | msn_callback_state_free(state); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
235 | return; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
236 | } |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
237 | |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
238 | faultcode_str = xmlnode_get_data(xmlnode_get_child(fault, "faultcode")); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
239 | |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
240 | if (faultcode_str && g_str_equal(faultcode_str, "q0:BadContextToken")) { |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
241 | purple_debug_info("msn", |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
242 | "Contact Operation {%s} failed because of bad token." |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
243 | " Updating token now and retrying operation.\n", |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
244 | msn_contact_operation_str(state->action)); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
245 | /* Token has expired, so renew it, and try again later */ |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
246 | msn_nexus_update_token(state->session->nexus, MSN_AUTH_CONTACTS, |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
247 | (GSourceFunc)msn_contact_request, data); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
248 | } |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
249 | else |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
250 | { |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
251 | if (state->cb) { |
|
25611
c85beaeb4538
This casting is no longer necessary.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25537
diff
changeset
|
252 | state->cb(req, resp, data); |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
253 | } else { |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
254 | /* We don't know how to respond to this faultcode, so log it */ |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
255 | char *str = xmlnode_to_str(fault, NULL); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
256 | purple_debug_error("msn", "Operation {%s} Failed, SOAP Fault was: %s\n", |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
257 | msn_contact_operation_str(state->action), str); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
258 | g_free(str); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
259 | } |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
260 | msn_callback_state_free(state); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
261 | } |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
262 | |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
263 | g_free(faultcode_str); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
264 | } |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
265 | |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
266 | static gboolean |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
267 | msn_contact_request(MsnCallbackState *state) |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
268 | { |
|
25614
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
269 | xmlnode *cachekey = xmlnode_get_child(state->body, |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
270 | "Header/ABApplicationHeader/CacheKey"); |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
271 | if (cachekey != NULL) |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
272 | xmlnode_free(cachekey); |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
273 | if (state->session->abch_cachekey != NULL) { |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
274 | cachekey = xmlnode_new_child(xmlnode_get_child(state->body, "Header/ABApplicationHeader"), "CacheKey"); |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
275 | xmlnode_insert_data(cachekey, state->session->abch_cachekey, -1); |
|
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25611
diff
changeset
|
276 | } |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
277 | if (state->token == NULL) |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
278 | state->token = xmlnode_get_child(state->body, |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
279 | "Header/ABAuthHeader/TicketToken"); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
280 | /* delete old & replace with new token */ |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
281 | xmlnode_free(state->token->child); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
282 | xmlnode_insert_data(state->token, |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
283 | msn_nexus_get_token_str(state->session->nexus, MSN_AUTH_CONTACTS), -1); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
284 | msn_soap_message_send(state->session, |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
285 | msn_soap_message_new(state->post_action, xmlnode_copy(state->body)), |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
286 | MSN_CONTACT_SERVER, state->post_url, FALSE, |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
287 | msn_contact_request_cb, state); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
288 | return FALSE; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
289 | } |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
290 | |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
291 | /*************************************************************** |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
292 | * Address Book and Membership List Operations |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
293 | ***************************************************************/ |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
294 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
295 | /*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
|
296 | static MsnListId |
| 20878 | 297 | msn_get_memberrole(const char *role) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
298 | { |
|
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
|
299 | 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
|
300 | |
|
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
|
301 | 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
|
302 | 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
|
303 | } 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
|
304 | 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
|
305 | } 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
|
306 | 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
|
307 | } 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
|
308 | return MSN_LIST_PL; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
309 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
310 | return 0; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
311 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
312 | |
|
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
|
313 | /* 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
|
314 | 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
|
315 | 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
|
316 | { |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
317 | MsnCallbackState *state = data; |
|
23765
8a43c0d4a095
References #4382, replaces usage of msn_soap_xml_get with xmlnode_get_child
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23759
diff
changeset
|
318 | if (resp && xmlnode_get_child(resp->xml, "Body/Fault") == NULL) { |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
319 | purple_debug_info("msn", "Address Book successfully created!\n"); |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
320 | msn_get_address_book(state->session, MSN_PS_INITIAL, NULL, 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
|
321 | } else { |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
322 | purple_debug_info("msn", "Address Book creation failed!\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
|
323 | } |
|
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
|
324 | } |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
325 | |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
326 | static void |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
327 | msn_create_address_book(MsnSession *session) |
|
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
|
328 | { |
|
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 | gchar *body; |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
330 | MsnCallbackState *state; |
|
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
|
331 | |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
332 | g_return_if_fail(session != NULL); |
|
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
333 | g_return_if_fail(session->user != NULL); |
|
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
334 | g_return_if_fail(session->user->passport != 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
|
335 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
336 | purple_debug_info("msn", "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
|
337 | |
|
24073
9c569eb69980
Remove calls to g_markup_escape_text. Not only does this help with old
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24072
diff
changeset
|
338 | body = g_strdup_printf(MSN_ADD_ADDRESSBOOK_TEMPLATE, |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
339 | session->user->passport); |
|
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
|
340 | |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
341 | state = msn_callback_state_new(session); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
342 | state->body = xmlnode_from_str(body, -1); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
343 | state->post_action = MSN_ADD_ADDRESSBOOK_SOAP_ACTION; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
344 | state->post_url = MSN_ADDRESS_BOOK_POST_URL; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
345 | state->cb = msn_create_address_cb; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
346 | msn_contact_request(state); |
|
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
|
347 | |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
348 | 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
|
349 | } |
|
d270fe91b138
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 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
351 | 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
|
352 | 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
|
353 | 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
|
354 | { |
|
28121
af71c360c5dd
Ignore buddies with invalid emails in the membership list or address book,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27776
diff
changeset
|
355 | char *passport; |
|
af71c360c5dd
Ignore buddies with invalid emails in the membership list or address book,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27776
diff
changeset
|
356 | char *type; |
|
af71c360c5dd
Ignore buddies with invalid emails in the membership list or address book,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27776
diff
changeset
|
357 | char *member_id; |
|
af71c360c5dd
Ignore buddies with invalid emails in the membership list or address book,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27776
diff
changeset
|
358 | MsnUser *user; |
|
28665
3ac533844419
Fix MSN forgetting display names for buddies. Fixes #10421.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
28644
diff
changeset
|
359 | xmlnode *annotation, *display; |
|
25155
f69512d24633
When getting the privacy lists, set the default network to unknown. If the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24786
diff
changeset
|
360 | guint nid = MSN_NETWORK_UNKNOWN; |
|
27101
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
361 | char *invite = NULL; |
|
28665
3ac533844419
Fix MSN forgetting display names for buddies. Fixes #10421.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
28644
diff
changeset
|
362 | char *display_text; |
|
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
|
363 | |
|
28121
af71c360c5dd
Ignore buddies with invalid emails in the membership list or address book,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27776
diff
changeset
|
364 | passport = xmlnode_get_data(xmlnode_get_child(member, node)); |
|
28731
46a9f7c534b1
The MSN servers are a bit more strict about what's allowed in emails than
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28665
diff
changeset
|
365 | if (!msn_email_is_valid(passport)) { |
|
28121
af71c360c5dd
Ignore buddies with invalid emails in the membership list or address book,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27776
diff
changeset
|
366 | g_free(passport); |
|
af71c360c5dd
Ignore buddies with invalid emails in the membership list or address book,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27776
diff
changeset
|
367 | return; |
|
af71c360c5dd
Ignore buddies with invalid emails in the membership list or address book,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27776
diff
changeset
|
368 | } |
|
af71c360c5dd
Ignore buddies with invalid emails in the membership list or address book,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27776
diff
changeset
|
369 | |
|
af71c360c5dd
Ignore buddies with invalid emails in the membership list or address book,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27776
diff
changeset
|
370 | type = xmlnode_get_data(xmlnode_get_child(member, "Type")); |
|
af71c360c5dd
Ignore buddies with invalid emails in the membership list or address book,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27776
diff
changeset
|
371 | member_id = xmlnode_get_data(xmlnode_get_child(member, "MembershipId")); |
|
28665
3ac533844419
Fix MSN forgetting display names for buddies. Fixes #10421.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
28644
diff
changeset
|
372 | if ((display = xmlnode_get_child(member, "DisplayName"))) { |
|
3ac533844419
Fix MSN forgetting display names for buddies. Fixes #10421.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
28644
diff
changeset
|
373 | display_text = xmlnode_get_data(display); |
|
3ac533844419
Fix MSN forgetting display names for buddies. Fixes #10421.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
28644
diff
changeset
|
374 | } else { |
|
3ac533844419
Fix MSN forgetting display names for buddies. Fixes #10421.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
28644
diff
changeset
|
375 | display_text = NULL; |
|
3ac533844419
Fix MSN forgetting display names for buddies. Fixes #10421.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
28644
diff
changeset
|
376 | } |
|
3ac533844419
Fix MSN forgetting display names for buddies. Fixes #10421.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
28644
diff
changeset
|
377 | |
|
3ac533844419
Fix MSN forgetting display names for buddies. Fixes #10421.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
28644
diff
changeset
|
378 | user = msn_userlist_find_add_user(session->userlist, passport, display_text); |
|
28121
af71c360c5dd
Ignore buddies with invalid emails in the membership list or address book,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27776
diff
changeset
|
379 | |
|
27101
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
380 | for (annotation = xmlnode_get_child(member, "Annotations/Annotation"); |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
381 | annotation; |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
382 | annotation = xmlnode_get_next_twin(annotation)) { |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
383 | char *name = xmlnode_get_data(xmlnode_get_child(annotation, "Name")); |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
384 | char *value = xmlnode_get_data(xmlnode_get_child(annotation, "Value")); |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
385 | if (name && value) { |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
386 | if (!strcmp(name, "MSN.IM.BuddyType")) { |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
387 | nid = strtoul(value, NULL, 10); |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
388 | } |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
389 | else if (!strcmp(name, "MSN.IM.InviteMessage")) { |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
390 | invite = value; |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
391 | value = NULL; |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
392 | } |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
393 | } |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
394 | g_free(name); |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
395 | g_free(value); |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
396 | } |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
397 | |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
398 | /* For EmailMembers, the network must be found in the annotations, above. |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
399 | Otherwise, PassportMembers are on the Passport network. */ |
|
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
400 | if (!strcmp(node, "PassportName")) |
|
25155
f69512d24633
When getting the privacy lists, set the default network to unknown. If the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24786
diff
changeset
|
401 | nid = MSN_NETWORK_PASSPORT; |
|
25535
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
402 | |
|
24776
76b7382f4fbe
Get the MSN buddy's network ID from the FindMembership response.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24775
diff
changeset
|
403 | purple_debug_info("msn", "CL: %s name: %s, Type: %s, MembershipID: %s, NetworkID: %u\n", |
|
76b7382f4fbe
Get the MSN buddy's network ID from the FindMembership response.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24775
diff
changeset
|
404 | node, passport, type, member_id == NULL ? "(null)" : member_id, nid); |
|
76b7382f4fbe
Get the MSN buddy's network ID from the FindMembership response.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24775
diff
changeset
|
405 | |
|
76b7382f4fbe
Get the MSN buddy's network ID from the FindMembership response.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24775
diff
changeset
|
406 | msn_user_set_network(user, nid); |
|
27101
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
407 | msn_user_set_invite_message(user, invite); |
|
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
|
408 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
409 | 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
|
410 | 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
|
411 | } |
|
d270fe91b138
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 | |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
413 | msn_got_lst_user(session, user, 1 << list, 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
|
414 | |
|
d270fe91b138
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 | 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
|
416 | 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
|
417 | g_free(member_id); |
|
27101
754a5afb2df7
Parse the invite message out of the pending membership list so that it can
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27098
diff
changeset
|
418 | g_free(invite); |
|
28665
3ac533844419
Fix MSN forgetting display names for buddies. Fixes #10421.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
28644
diff
changeset
|
419 | g_free(display_text); |
|
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
|
420 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
421 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
422 | 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
|
423 | 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
|
424 | { |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
425 | 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
|
426 | |
|
23765
8a43c0d4a095
References #4382, replaces usage of msn_soap_xml_get with xmlnode_get_child
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23759
diff
changeset
|
427 | if ((type = xmlnode_get_child(service, "Info/Handle/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
|
428 | 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
|
429 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
430 | 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
|
431 | /* 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
|
432 | } 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
|
433 | 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
|
434 | 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
|
435 | 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
|
436 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
437 | purple_debug_info("msn", "CL last change: %s\n", lastchange_str); |
|
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
|
438 | 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
|
439 | 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
|
440 | |
|
23765
8a43c0d4a095
References #4382, replaces usage of msn_soap_xml_get with xmlnode_get_child
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23759
diff
changeset
|
441 | for (membership = xmlnode_get_child(service, |
|
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
|
442 | "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
|
443 | 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
|
444 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
445 | 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
|
446 | 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
|
447 | 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
|
448 | 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
|
449 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
450 | purple_debug_info("msn", "CL MemberRole role: %s, list: %d\n", |
| 21371 | 451 | 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
|
452 | |
|
23765
8a43c0d4a095
References #4382, replaces usage of msn_soap_xml_get with xmlnode_get_child
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23759
diff
changeset
|
453 | for (member = xmlnode_get_child(membership, "Members/Member"); |
|
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
|
454 | 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
|
455 | 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
|
456 | 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
|
457 | 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
|
458 | 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
|
459 | } 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
|
460 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
461 | } 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
|
462 | 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
|
463 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
464 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
465 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
466 | 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
|
467 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
468 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
469 | 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
|
470 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
471 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
472 | 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
|
473 | } |
|
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
|
474 | } |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
475 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
476 | /*parse contact list*/ |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
477 | static void |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
478 | msn_parse_contact_list(MsnSession *session, xmlnode *node) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
479 | { |
|
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
|
480 | 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
|
481 | |
|
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
|
482 | /* 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
|
483 | * |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
484 | * <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
|
485 | * 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
|
486 | * |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
487 | * 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
|
488 | */ |
|
23765
8a43c0d4a095
References #4382, replaces usage of msn_soap_xml_get with xmlnode_get_child
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23759
diff
changeset
|
489 | if ((fault = xmlnode_get_child(node, "Body/Fault"))) { |
|
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
|
490 | 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
|
491 | char *faultstring = xmlnode_get_data(faultnode); |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
492 | purple_debug_info("msn", "Retrieving contact list failed: %s\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
|
493 | 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
|
494 | 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
|
495 | } |
|
23765
8a43c0d4a095
References #4382, replaces usage of msn_soap_xml_get with xmlnode_get_child
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23759
diff
changeset
|
496 | if ((faultnode = xmlnode_get_child(fault, "detail/errorcode"))) { |
|
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
|
497 | char *errorcode = xmlnode_get_data(faultnode); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
498 | |
|
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
|
499 | if (g_str_equal(errorcode, "ABDoesNotExist")) { |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
500 | msn_create_address_book(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
|
501 | 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
|
502 | 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
|
503 | } |
|
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 | |
|
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
|
505 | 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
|
506 | } |
|
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
|
507 | |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
508 | msn_get_contact_list(session, MSN_PS_INITIAL, 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
|
509 | } 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
|
510 | 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
|
511 | |
|
23765
8a43c0d4a095
References #4382, replaces usage of msn_soap_xml_get with xmlnode_get_child
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23759
diff
changeset
|
512 | for (service = xmlnode_get_child(node, "Body/FindMembershipResponse/" |
|
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
|
513 | "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
|
514 | service; service = xmlnode_get_next_twin(service)) { |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
515 | msn_parse_each_service(session, service); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
516 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
517 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
518 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
519 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
520 | 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
|
521 | 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
|
522 | gpointer data) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
523 | { |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
524 | MsnCallbackState *state = data; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
525 | MsnSession *session = state->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
|
526 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
527 | 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
|
528 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
529 | 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
|
530 | 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
|
531 | 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
|
532 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
533 | purple_debug_misc("msn", "Got the contact list!\n"); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
534 | |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
535 | msn_parse_contact_list(session, resp->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
|
536 | 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
|
537 | "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
|
538 | 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
|
539 | "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
|
540 | |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
541 | if (state->partner_scenario == MSN_PS_INITIAL) { |
|
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
|
542 | #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
|
543 | /* 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
|
544 | 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
|
545 | list to detect sync issues */ |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
546 | msn_get_address_book(session, MSN_PS_INITIAL, abLastChange, dynamicItemLastChange); |
|
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
|
547 | #else |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
548 | msn_get_address_book(session, MSN_PS_INITIAL, NULL, 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
|
549 | #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
|
550 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
551 | } |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
552 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
553 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
554 | /*SOAP get contact list*/ |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
555 | void |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
556 | msn_get_contact_list(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
|
557 | 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
|
558 | { |
|
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
|
559 | 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
|
560 | gchar *update_str = NULL; |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
561 | MsnCallbackState *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
|
562 | 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
|
563 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
564 | purple_debug_misc("msn", "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
|
565 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
566 | if (update_time != NULL) { |
|
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
567 | purple_debug_info("msn", "CL Last update time: %s\n", update_time); |
|
24073
9c569eb69980
Remove calls to g_markup_escape_text. Not only does this help with old
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24072
diff
changeset
|
568 | update_str = g_strdup_printf(MSN_GET_CONTACT_UPDATE_XML, update_time); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
569 | } |
|
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
|
570 | |
|
24073
9c569eb69980
Remove calls to g_markup_escape_text. Not only does this help with old
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24072
diff
changeset
|
571 | body = g_strdup_printf(MSN_GET_CONTACT_TEMPLATE, partner_scenario_str, |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
572 | 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
|
573 | |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
574 | state = msn_callback_state_new(session); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
575 | state->partner_scenario = partner_scenario; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
576 | state->body = xmlnode_from_str(body, -1); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
577 | state->post_action = MSN_GET_CONTACT_SOAP_ACTION; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
578 | state->post_url = MSN_GET_CONTACT_POST_URL; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
579 | state->cb = msn_get_contact_list_cb; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
580 | msn_contact_request(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
|
581 | |
|
d270fe91b138
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 | g_free(update_str); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
583 | g_free(body); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
584 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
585 | |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
586 | static void |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
587 | msn_parse_addressbook_groups(MsnSession *session, xmlnode *node) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
588 | { |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
589 | xmlnode *group; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
590 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
591 | purple_debug_info("msn", "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
|
592 | |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
593 | for(group = xmlnode_get_child(node, "Group"); group; |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
594 | group = xmlnode_get_next_twin(group)){ |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
595 | 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
|
596 | 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
|
597 | |
|
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
|
598 | 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
|
599 | 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
|
600 | 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
|
601 | group_name = xmlnode_get_data(groupname); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
602 | |
|
24773
2241b9f2698f
Check for NULL group_id before calling msn_group_new since that function will
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24672
diff
changeset
|
603 | if (group_id == NULL) { |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
604 | /* 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
|
605 | g_free(group_name); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
606 | continue; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
607 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
608 | |
|
24773
2241b9f2698f
Check for NULL group_id before calling msn_group_new since that function will
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24672
diff
changeset
|
609 | msn_group_new(session->userlist, group_id, group_name); |
|
2241b9f2698f
Check for NULL group_id before calling msn_group_new since that function will
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24672
diff
changeset
|
610 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
611 | purple_debug_info("msn", "AB group_id: %s, name: %s\n", group_id, group_name ? group_name : "(null)"); |
|
24773
2241b9f2698f
Check for NULL group_id before calling msn_group_new since that function will
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24672
diff
changeset
|
612 | if ((purple_find_group(group_name)) == NULL) { |
|
20484
4a410a579a80
Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents:
20481
diff
changeset
|
613 | PurpleGroup *g = purple_group_new(group_name); |
|
4a410a579a80
Fix up some gaim -> purple issues.
Richard Laager <rlaager@pidgin.im>
parents:
20481
diff
changeset
|
614 | purple_blist_add_group(g, NULL); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
615 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
616 | g_free(group_id); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
617 | g_free(group_name); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
618 | } |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
619 | } |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
620 | |
|
22710
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
621 | static gboolean |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
622 | msn_parse_addressbook_mobile(xmlnode *contactInfo, char **inout_mobile_number) |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
623 | { |
|
22710
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
624 | xmlnode *phones; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
625 | char *mobile_number = NULL; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
626 | gboolean mobile = FALSE; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
627 | |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
628 | *inout_mobile_number = NULL; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
629 | |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
630 | if ((phones = xmlnode_get_child(contactInfo, "phones"))) { |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
631 | xmlnode *contact_phone; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
632 | char *phone_type = NULL; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
633 | |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
634 | for (contact_phone = xmlnode_get_child(phones, "ContactPhone"); |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
635 | contact_phone; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
636 | contact_phone = xmlnode_get_next_twin(contact_phone)) { |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
637 | xmlnode *contact_phone_type; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
638 | |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
639 | if (!(contact_phone_type = |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
640 | xmlnode_get_child(contact_phone, "contactPhoneType"))) |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
641 | continue; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
642 | |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
643 | phone_type = xmlnode_get_data(contact_phone_type); |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
644 | |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
645 | if (phone_type && !strcmp(phone_type, "ContactPhoneMobile")) { |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
646 | xmlnode *number; |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
647 | |
|
22710
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
648 | if ((number = xmlnode_get_child(contact_phone, "number"))) { |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
649 | xmlnode *messenger_enabled; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
650 | char *is_messenger_enabled = NULL; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
651 | |
|
22978
0dc637ac393b
Fix incorrect freeing in my previous commit.
Daniel Atallah <datallah@pidgin.im>
parents:
22977
diff
changeset
|
652 | g_free(mobile_number); |
|
22710
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
653 | mobile_number = xmlnode_get_data(number); |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
654 | |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
655 | if (mobile_number && |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
656 | (messenger_enabled = xmlnode_get_child(contact_phone, "isMessengerEnabled")) |
|
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
657 | && (is_messenger_enabled = xmlnode_get_data(messenger_enabled)) |
|
22977
619a2612bb92
This is the way we plug the leaks, plug the leaks, plug the leaks...
Daniel Atallah <datallah@pidgin.im>
parents:
22712
diff
changeset
|
658 | && !strcmp(is_messenger_enabled, "true")) |
|
22710
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
659 | mobile = TRUE; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
660 | |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
661 | g_free(is_messenger_enabled); |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
662 | } |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
663 | } |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
664 | |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
665 | g_free(phone_type); |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
666 | } |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
667 | } |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
668 | |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
669 | *inout_mobile_number = mobile_number; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
670 | return mobile; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
671 | } |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
672 | |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
673 | static void |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
674 | msn_parse_addressbook_contacts(MsnSession *session, xmlnode *node) |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
675 | { |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
676 | xmlnode *contactNode; |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
677 | char *passport = NULL, *Name = NULL, *uid = NULL, *type = NULL, *mobile_number = NULL, *alias = NULL; |
|
22710
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
678 | gboolean mobile = FALSE; |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
679 | PurpleConnection *pc = purple_account_get_connection(session->account); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
680 | |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
681 | 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
|
682 | contactNode = xmlnode_get_next_twin(contactNode)) { |
|
25535
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
683 | xmlnode *contactId, *contactInfo, *contactType, *passportName, *displayName, *guid, *groupIds; |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
684 | xmlnode *annotation; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
685 | MsnUser *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
|
686 | |
|
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
|
687 | 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
|
688 | || !(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
|
689 | || !(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
|
690 | continue; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
691 | |
|
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
|
692 | 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
|
693 | g_free(Name); |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
694 | g_free(alias); |
|
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
|
695 | 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
|
696 | g_free(type); |
|
22981
b83a23981419
Fix a number of leaks. As far as I can tell, MSNP14 now logs in without
Daniel Atallah <datallah@pidgin.im>
parents:
22978
diff
changeset
|
697 | g_free(mobile_number); |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
698 | passport = Name = uid = type = mobile_number = alias = NULL; |
|
22710
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
699 | mobile = FALSE; |
|
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
|
700 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
701 | uid = xmlnode_get_data(contactId); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
702 | type = xmlnode_get_data(contactType); |
|
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 | /*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
|
705 | 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
|
706 | 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
|
707 | 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
|
708 | 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
|
709 | 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
|
710 | g_free(friendly); |
|
20486
26b9f3efe52d
The last of the merge fix-ups.
Richard Laager <rlaager@pidgin.im>
parents:
20485
diff
changeset
|
711 | 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
|
712 | } |
|
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
|
713 | |
|
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
|
714 | 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
|
715 | if (passportName == NULL) { |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
716 | xmlnode *emailsNode, *contactEmailNode, *emailNode; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
717 | xmlnode *messengerEnabledNode; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
718 | char *msnEnabled; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
719 | |
|
25535
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
720 | /*TODO: add it to the non-instant Messenger group and recognize as email Membership*/ |
|
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
721 | /* Yahoo/Federated 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
|
722 | 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
|
723 | if (emailsNode == NULL) { |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
724 | /*TODO: need to support the Mobile type*/ |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
725 | continue; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
726 | } |
|
25722
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
727 | for (contactEmailNode = xmlnode_get_child(emailsNode, "ContactEmail"); |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
728 | contactEmailNode; |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
729 | contactEmailNode = xmlnode_get_next_twin(contactEmailNode)) { |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
730 | if ((messengerEnabledNode = xmlnode_get_child(contactEmailNode, "isMessengerEnabled"))) { |
|
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
|
731 | |
|
25722
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
732 | msnEnabled = xmlnode_get_data(messengerEnabledNode); |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
733 | |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
734 | if (msnEnabled && !strcmp(msnEnabled, "true")) { |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
735 | if ((emailNode = xmlnode_get_child(contactEmailNode, "email"))) |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
736 | 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
|
737 | |
|
25722
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
738 | /* Messenger enabled, Get the Passport*/ |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
739 | purple_debug_info("msn", "AB Yahoo/Federated User %s\n", passport ? passport : "(null)"); |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
740 | g_free(msnEnabled); |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
741 | break; |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
742 | } |
|
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
|
743 | |
|
20578
82571739414b
Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20577
diff
changeset
|
744 | g_free(msnEnabled); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
745 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
746 | } |
|
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
|
747 | } else { |
|
25535
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
748 | xmlnode *messenger_user; |
|
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
749 | /* ignore non-messenger contacts */ |
|
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
750 | if ((messenger_user = xmlnode_get_child(contactInfo, "isMessengerUser"))) { |
|
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
751 | char *is_messenger_user = xmlnode_get_data(messenger_user); |
|
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
752 | |
|
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
753 | if (is_messenger_user && !strcmp(is_messenger_user, "false")) { |
|
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
754 | g_free(is_messenger_user); |
|
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
755 | continue; |
|
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
756 | } |
|
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
757 | |
|
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
758 | g_free(is_messenger_user); |
|
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
759 | } |
|
ce072d0b75c1
The MSN AddressBook can contain contacts with global isMessengerUser=false,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25474
diff
changeset
|
760 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
761 | passport = xmlnode_get_data(passportName); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
762 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
763 | |
|
27098
88ad7520c86f
This line is redundant.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26601
diff
changeset
|
764 | /* Couldn't find anything */ |
|
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
|
765 | if (passport == NULL) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
766 | continue; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
767 | |
|
28731
46a9f7c534b1
The MSN servers are a bit more strict about what's allowed in emails than
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28665
diff
changeset
|
768 | if (!msn_email_is_valid(passport)) |
|
28121
af71c360c5dd
Ignore buddies with invalid emails in the membership list or address book,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27776
diff
changeset
|
769 | continue; |
|
af71c360c5dd
Ignore buddies with invalid emails in the membership list or address book,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27776
diff
changeset
|
770 | |
|
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
|
771 | 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
|
772 | 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
|
773 | else |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
774 | Name = g_strdup(passport); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
775 | |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
776 | for (annotation = xmlnode_get_child(contactInfo, "annotations/Annotation"); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
777 | annotation; annotation = xmlnode_get_next_twin(annotation)) { |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
778 | char *name; |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
779 | name = xmlnode_get_data(xmlnode_get_child(annotation, "Name")); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
780 | if (!strcmp(name, "AB.NickName")) |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
781 | alias = xmlnode_get_data(xmlnode_get_child(annotation, "Value")); |
|
24775
c238d3893049
Add tests for some known contact annotations. These don't do anything yet, but
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24774
diff
changeset
|
782 | else if (!strcmp(name, "MSN.IM.HasSharedFolder")) |
|
c238d3893049
Add tests for some known contact annotations. These don't do anything yet, but
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24774
diff
changeset
|
783 | ; /* Do nothing yet... */ |
|
c238d3893049
Add tests for some known contact annotations. These don't do anything yet, but
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24774
diff
changeset
|
784 | else if (!strcmp(name, "AB.Spouse")) |
|
c238d3893049
Add tests for some known contact annotations. These don't do anything yet, but
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24774
diff
changeset
|
785 | ; /* Do nothing yet... */ |
|
c238d3893049
Add tests for some known contact annotations. These don't do anything yet, but
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24774
diff
changeset
|
786 | else if (!strcmp(name, "MSN.Mobile.ContactId")) |
|
c238d3893049
Add tests for some known contact annotations. These don't do anything yet, but
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24774
diff
changeset
|
787 | ; /* Do nothing yet... */ |
|
c238d3893049
Add tests for some known contact annotations. These don't do anything yet, but
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24774
diff
changeset
|
788 | else |
|
c238d3893049
Add tests for some known contact annotations. These don't do anything yet, but
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24774
diff
changeset
|
789 | purple_debug_info("msn", |
|
c238d3893049
Add tests for some known contact annotations. These don't do anything yet, but
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24774
diff
changeset
|
790 | "Unknown AB contact annotation: %s\n", name); |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
791 | g_free(name); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
792 | } |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
793 | |
|
22710
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
794 | mobile = msn_parse_addressbook_mobile(contactInfo, &mobile_number); |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
795 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
796 | purple_debug_misc("msn", "AB passport:{%s} uid:{%s} display:{%s} alias: {%s} mobile:{%s} mobile number:{%s}\n", |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
797 | passport, uid ? uid : "(null)", Name ? Name : "(null)", alias ? alias : "(null)", |
|
22710
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
798 | mobile ? "true" : "false", mobile_number ? mobile_number : "(null)"); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
799 | |
|
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
|
800 | 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
|
801 | msn_user_set_uid(user, uid); |
|
22710
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
802 | msn_user_set_mobile_phone(user, mobile_number); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
803 | |
|
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
|
804 | 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
|
805 | 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
|
806 | for (guid = xmlnode_get_child(groupIds, "guid"); guid; |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
807 | 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
|
808 | 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
|
809 | msn_user_add_group_id(user, group_id); |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
810 | purple_debug_misc("msn", "AB 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
|
811 | g_free(group_id); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
812 | } |
|
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
|
813 | } 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
|
814 | 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
|
815 | /*not in any group,Then set default group*/ |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
816 | 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
|
817 | } |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
818 | |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
819 | msn_got_lst_user(session, user, MSN_LIST_FL_OP, NULL); |
|
22710
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
820 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
821 | if (mobile && user) |
|
22710
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
822 | { |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
823 | user->mobile = TRUE; |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
824 | purple_prpl_got_user_status(session->account, user->passport, "mobile", NULL); |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
825 | purple_prpl_got_user_status(session->account, user->passport, "available", NULL); |
|
e911e17d75f0
another patch from Maiku that "Properly identifies users you have the mobile
Ka-Hing Cheung <khc@pidgin.im>
parents:
21950
diff
changeset
|
826 | } |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
827 | if (alias) |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
828 | purple_serv_got_private_alias(pc, passport, alias); |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
829 | } |
|
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
|
830 | |
|
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
|
831 | 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
|
832 | 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
|
833 | 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
|
834 | g_free(type); |
|
22981
b83a23981419
Fix a number of leaks. As far as I can tell, MSNP14 now logs in without
Daniel Atallah <datallah@pidgin.im>
parents:
22978
diff
changeset
|
835 | g_free(mobile_number); |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
836 | } |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
837 | |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
838 | static gboolean |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
839 | msn_parse_addressbook(MsnSession *session, xmlnode *node) |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
840 | { |
|
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
|
841 | xmlnode *result; |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
842 | 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
|
843 | xmlnode *contacts; |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
844 | 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
|
845 | xmlnode *fault; |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
846 | |
|
23765
8a43c0d4a095
References #4382, replaces usage of msn_soap_xml_get with xmlnode_get_child
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23759
diff
changeset
|
847 | if ((fault = xmlnode_get_child(node, "Body/Fault"))) { |
|
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
|
848 | 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
|
849 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
850 | 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
|
851 | gchar *faultstring = xmlnode_get_data(faultnode); |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
852 | purple_debug_info("msn", "AB Faultstring: %s\n", faultstring); |
|
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
|
853 | 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
|
854 | } |
|
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
|
855 | |
|
23765
8a43c0d4a095
References #4382, replaces usage of msn_soap_xml_get with xmlnode_get_child
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23759
diff
changeset
|
856 | if ((faultnode = xmlnode_get_child(fault, "detail/errorcode"))) { |
|
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
|
857 | 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
|
858 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
859 | purple_debug_info("msn", "AB Error Code: %s\n", errorcode); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
860 | |
|
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
|
861 | 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
|
862 | 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
|
863 | 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
|
864 | } |
|
22977
619a2612bb92
This is the way we plug the leaks, plug the leaks, plug the leaks...
Daniel Atallah <datallah@pidgin.im>
parents:
22712
diff
changeset
|
865 | g_free(errorcode); |
|
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
|
866 | } |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
867 | |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
868 | return FALSE; |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
869 | } |
|
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
|
870 | |
|
23765
8a43c0d4a095
References #4382, replaces usage of msn_soap_xml_get with xmlnode_get_child
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23759
diff
changeset
|
871 | result = xmlnode_get_child(node, "Body/ABFindAllResponse/ABFindAllResult"); |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
872 | if (result == NULL) { |
|
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
873 | purple_debug_misc("msn", "Received no address book update\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
|
874 | 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
|
875 | } |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
876 | |
|
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
|
877 | /* 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
|
878 | if they are really there, and update msnpiki */ |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
879 | /*Process Group List*/ |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
880 | groups = xmlnode_get_child(result, "groups"); |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
881 | if (groups != NULL) { |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
882 | msn_parse_addressbook_groups(session, groups); |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
883 | } |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
884 | |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
885 | /*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
|
886 | msn_group_new(session->userlist, MSN_INDIVIDUALS_GROUP_ID, |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
887 | MSN_INDIVIDUALS_GROUP_NAME); |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
888 | purple_debug_misc("msn", "AB group_id:%s name:%s\n", |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
889 | MSN_INDIVIDUALS_GROUP_ID, MSN_INDIVIDUALS_GROUP_NAME); |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
890 | if ((purple_find_group(MSN_INDIVIDUALS_GROUP_NAME)) == NULL){ |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
891 | PurpleGroup *g = purple_group_new(MSN_INDIVIDUALS_GROUP_NAME); |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
892 | purple_blist_add_group(g, NULL); |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
893 | } |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
894 | |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
895 | /*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
|
896 | msn_group_new(session->userlist, MSN_NON_IM_GROUP_ID, MSN_NON_IM_GROUP_NAME); |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
897 | purple_debug_misc("msn", "AB group_id:%s name:%s\n", MSN_NON_IM_GROUP_ID, MSN_NON_IM_GROUP_NAME); |
|
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
898 | if ((purple_find_group(MSN_NON_IM_GROUP_NAME)) == NULL) { |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
899 | 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
|
900 | purple_blist_add_group(g, NULL); |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
901 | } |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
902 | |
|
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
903 | /*Process contact List*/ |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
904 | purple_debug_info("msn", "Process contact list...\n"); |
|
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
905 | contacts = xmlnode_get_child(result, "contacts"); |
|
20522
177cad886d4c
A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20515
diff
changeset
|
906 | if (contacts != NULL) { |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
907 | msn_parse_addressbook_contacts(session, contacts); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
908 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
909 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
910 | abNode = xmlnode_get_child(result, "ab"); |
|
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
911 | 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
|
912 | 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
|
913 | char *tmp = NULL; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
914 | |
|
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
|
915 | 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
|
916 | tmp = xmlnode_get_data(node2); |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
917 | purple_debug_info("msn", "AB 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
|
918 | 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
|
919 | |
|
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
|
920 | 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
|
921 | 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
|
922 | tmp = xmlnode_get_data(node2); |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
923 | purple_debug_info("msn", "AB DynamicItemLastChanged :{%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
|
924 | 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
|
925 | g_free(tmp); |
|
20478
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 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
928 | return TRUE; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
929 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
930 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
931 | 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
|
932 | 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
|
933 | { |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
934 | MsnCallbackState *state = data; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
935 | 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
|
936 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
937 | g_return_if_fail(session != NULL); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
938 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
939 | purple_debug_misc("msn", "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
|
940 | |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
941 | if (msn_parse_addressbook(session, resp->xml)) { |
|
23841
8b69edc386fe
On MSN, always send the privacy settings and contact list after parsing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23833
diff
changeset
|
942 | msn_send_privacy(session->account->gc); |
|
8b69edc386fe
On MSN, always send the privacy settings and contact list after parsing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23833
diff
changeset
|
943 | msn_notification_dump_contact(session); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
944 | } 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
|
945 | /* 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
|
946 | 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
|
947 | 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
|
948 | */ |
|
79e9c94c34db
Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents:
20550
diff
changeset
|
949 | /* |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
950 | msn_get_address_book(session, 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
|
951 | */ |
|
25634
a35f847867f1
Set an error if you're unable to connect to the contact server, or are not
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25614
diff
changeset
|
952 | msn_session_set_error(session, MSN_ERROR_BAD_BLIST, NULL); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
953 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
954 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
955 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
956 | /*get the address book*/ |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
957 | void |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
958 | msn_get_address_book(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
|
959 | 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
|
960 | const char *dynamicItemLastChange) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
961 | { |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
962 | char *body, *update_str = NULL; |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
963 | MsnCallbackState *state; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
964 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
965 | purple_debug_misc("msn", "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
|
966 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
967 | /*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
|
968 | 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
|
969 | 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
|
970 | 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
|
971 | 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
|
972 | |
|
24073
9c569eb69980
Remove calls to g_markup_escape_text. Not only does this help with old
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24072
diff
changeset
|
973 | body = g_strdup_printf(MSN_GET_ADDRESS_TEMPLATE, |
|
23759
1abf46eeccec
fix sending offline message in p15 by sending the correct token. In msnp14,
Ka-Hing Cheung <khc@pidgin.im>
parents:
23758
diff
changeset
|
974 | MsnSoapPartnerScenarioText[partner_scenario], |
|
1abf46eeccec
fix sending offline message in p15 by sending the correct token. In msnp14,
Ka-Hing Cheung <khc@pidgin.im>
parents:
23758
diff
changeset
|
975 | 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
|
976 | |
|
25536
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
977 | state = msn_callback_state_new(session); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
978 | state->body = xmlnode_from_str(body, -1); |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
979 | state->post_action = MSN_GET_ADDRESS_SOAP_ACTION; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
980 | state->post_url = MSN_ADDRESS_BOOK_POST_URL; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
981 | state->cb = msn_get_address_cb; |
|
3db8fa7ba81e
I incorrectly assumed that the FindMembership and ABFindAll SOAP requests
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25535
diff
changeset
|
982 | msn_contact_request(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
|
983 | |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
984 | g_free(update_str); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
985 | g_free(body); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
986 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
987 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
988 | /*************************************************************** |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
989 | * Contact Operations |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
990 | ***************************************************************/ |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
991 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
992 | 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
|
993 | 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
|
994 | gpointer data) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
995 | { |
|
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
|
996 | 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
|
997 | 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
|
998 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
999 | MsnUserList *userlist; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1000 | MsnUser *user; |
|
24437
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1001 | xmlnode *guid; |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1002 | |
|
24778
f65c57af8698
Print a specific error to debug log about EmailDomainIsFederated error.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24777
diff
changeset
|
1003 | xmlnode *fault; |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1004 | |
|
24783
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1005 | g_return_if_fail(session != NULL); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1006 | userlist = session->userlist; |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1007 | |
|
24778
f65c57af8698
Print a specific error to debug log about EmailDomainIsFederated error.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24777
diff
changeset
|
1008 | fault = xmlnode_get_child(resp->xml, "Body/Fault"); |
|
f65c57af8698
Print a specific error to debug log about EmailDomainIsFederated error.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24777
diff
changeset
|
1009 | if (fault != NULL) { |
|
f65c57af8698
Print a specific error to debug log about EmailDomainIsFederated error.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24777
diff
changeset
|
1010 | char *errorcode = xmlnode_get_data(xmlnode_get_child(fault, "detail/errorcode")); |
|
f65c57af8698
Print a specific error to debug log about EmailDomainIsFederated error.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24777
diff
changeset
|
1011 | if (errorcode && !strcmp(errorcode, "EmailDomainIsFederated")) { |
|
f65c57af8698
Print a specific error to debug log about EmailDomainIsFederated error.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24777
diff
changeset
|
1012 | /* Do something special! */ |
|
f65c57af8698
Print a specific error to debug log about EmailDomainIsFederated error.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24777
diff
changeset
|
1013 | purple_debug_error("msn", "Contact is from a federated domain, but don't know what to do yet!\n"); |
|
24783
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1014 | |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1015 | } else if (errorcode && !strcmp(errorcode, "InvalidPassportUser")) { |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1016 | PurpleBuddy *buddy = purple_find_buddy(session->account, state->who); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1017 | char *str = g_strdup_printf(_("Unable to add \"%s\"."), state->who); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1018 | purple_notify_error(state->session, _("Buddy Add error"), str, |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1019 | _("The username specified does not exist.")); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1020 | g_free(str); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1021 | msn_userlist_rem_buddy(userlist, state->who); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1022 | if (buddy != NULL) |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1023 | purple_blist_remove_buddy(buddy); |
|
24778
f65c57af8698
Print a specific error to debug log about EmailDomainIsFederated error.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24777
diff
changeset
|
1024 | |
|
24783
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1025 | } else { |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1026 | /* We don't know how to respond to this faultcode, so log it */ |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1027 | char *fault_str = xmlnode_to_str(fault, NULL); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1028 | if (fault_str != NULL) { |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1029 | purple_debug_error("msn", "Operation {%s} Failed, SOAP Fault was: %s\n", |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1030 | msn_contact_operation_str(state->action), fault_str); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1031 | g_free(fault_str); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1032 | } |
|
24778
f65c57af8698
Print a specific error to debug log about EmailDomainIsFederated error.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24777
diff
changeset
|
1033 | } |
|
24783
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1034 | return; |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1035 | } |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1036 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1037 | purple_debug_info("msn", "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
|
1038 | |
|
24786
056ef71b0cef
Updates for federated/Yahoo buddies:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24785
diff
changeset
|
1039 | msn_userlist_add_buddy_to_list(userlist, state->who, MSN_LIST_AL); |
|
056ef71b0cef
Updates for federated/Yahoo buddies:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24785
diff
changeset
|
1040 | msn_userlist_add_buddy_to_list(userlist, state->who, MSN_LIST_FL); |
|
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
|
1041 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1042 | user = msn_userlist_find_add_user(userlist, state->who, state->who); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1043 | msn_user_add_group_id(user, state->guid); |
|
24437
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1044 | |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1045 | guid = xmlnode_get_child(resp->xml, |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1046 | "Body/ABContactAddResponse/ABContactAddResult/guid"); |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1047 | if (guid != NULL) { |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1048 | char *uid = xmlnode_get_data(guid); |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1049 | msn_user_set_uid(user, uid); |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1050 | purple_debug_info("msn", "Set %s guid to %s.\n", state->who, uid); |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1051 | g_free(uid); |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1052 | } |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1053 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1054 | |
|
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
|
1055 | /* 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
|
1056 | void |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1057 | msn_add_contact(MsnSession *session, MsnCallbackState *state, const char *passport) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1058 | { |
|
24785
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1059 | 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
|
1060 | 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
|
1061 | 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
|
1062 | |
|
d270fe91b138
finish converting the rest of stuff to the new soap api, signing on, getting
Ka-Hing Cheung <khc@pidgin.im>
parents:
20585
diff
changeset
|
1063 | #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
|
1064 | 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
|
1065 | |
|
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
|
1066 | |
|
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
|
1067 | 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
|
1068 | 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
|
1069 | } 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
|
1070 | 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
|
1071 | } |
|
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
|
1072 | 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
|
1073 | #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
|
1074 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1075 | purple_debug_info("msn", "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
|
1076 | |
|
24785
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1077 | user = msn_userlist_find_user(session->userlist, passport); |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1078 | if (user == NULL) { |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1079 | purple_debug_warning("msn", "Unable to retrieve user %s from the userlist!\n", passport); |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1080 | return; /* guess this never happened! */ |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1081 | } |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1082 | |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1083 | if (user->networkid != MSN_NETWORK_PASSPORT) { |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1084 | contact_xml = g_strdup_printf(MSN_CONTACT_EMAIL_XML, |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1085 | user->networkid == MSN_NETWORK_YAHOO ? |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1086 | "Messenger2" : |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1087 | "Messenger3", |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1088 | passport, 0); |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1089 | } else { |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1090 | contact_xml = g_strdup_printf(MSN_CONTACT_XML, passport); |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1091 | } |
|
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
|
1092 | 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
|
1093 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1094 | state->body = xmlnode_from_str(body, -1); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1095 | state->post_action = MSN_CONTACT_ADD_SOAP_ACTION; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1096 | state->post_url = MSN_ADDRESS_BOOK_POST_URL; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1097 | state->cb = msn_add_contact_read_cb; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1098 | msn_contact_request(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
|
1099 | |
|
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
|
1100 | g_free(contact_xml); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1101 | g_free(body); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1102 | } |
|
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
|
1103 | |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1104 | 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
|
1105 | 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
|
1106 | 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
|
1107 | { |
|
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
|
1108 | MsnCallbackState *state = data; |
|
24783
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1109 | MsnSession *session = state->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
|
1110 | MsnUserList *userlist; |
|
24781
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1111 | xmlnode *fault; |
|
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
|
1112 | |
|
24783
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1113 | g_return_if_fail(session != NULL); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1114 | userlist = session->userlist; |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1115 | |
|
24781
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1116 | fault = xmlnode_get_child(resp->xml, "Body/Fault"); |
|
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1117 | if (fault != NULL) { |
|
24783
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1118 | char *errorcode = xmlnode_get_data(xmlnode_get_child(fault, "detail/errorcode")); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1119 | if (errorcode && !strcmp(errorcode, "EmailDomainIsFederated")) { |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1120 | /* Do something special! */ |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1121 | purple_debug_error("msn", "Contact is from a federated domain, but don't know what to do yet!\n"); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1122 | |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1123 | } else if (errorcode && !strcmp(errorcode, "InvalidPassportUser")) { |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1124 | PurpleBuddy *buddy = purple_find_buddy(session->account, state->who); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1125 | char *str = g_strdup_printf(_("Unable to add \"%s\"."), state->who); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1126 | purple_notify_error(session, _("Buddy Add error"), str, |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1127 | _("The username specified does not exist.")); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1128 | g_free(str); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1129 | msn_userlist_rem_buddy(userlist, state->who); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1130 | if (buddy != NULL) |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1131 | purple_blist_remove_buddy(buddy); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1132 | |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1133 | } else { |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1134 | /* We don't know how to respond to this faultcode, so log it */ |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1135 | char *fault_str = xmlnode_to_str(fault, NULL); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1136 | if (fault_str != NULL) { |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1137 | purple_debug_error("msn", "Operation {%s} Failed, SOAP Fault was: %s\n", |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1138 | msn_contact_operation_str(state->action), fault_str); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1139 | g_free(fault_str); |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1140 | } |
|
6361c7e41b97
Handle the InvalidPassportUser response when adding buddies and report it to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24782
diff
changeset
|
1141 | } |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1142 | return; |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1143 | } |
|
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
|
1144 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1145 | if (msn_userlist_add_buddy_to_group(userlist, state->who, |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1146 | state->new_group_name)) { |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1147 | purple_debug_info("msn", "Contact %s added to group %s successfully!\n", state->who, state->new_group_name); |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1148 | } else { |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1149 | purple_debug_info("msn", "Contact %s added to group %s successfully on server, but failed in the local list\n", state->who, state->new_group_name); |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1150 | } |
|
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
|
1151 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1152 | if (state->action & MSN_ADD_BUDDY) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1153 | MsnUser *user = msn_userlist_find_user(userlist, state->who); |
|
24437
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1154 | xmlnode *guid = xmlnode_get_child(resp->xml, |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1155 | "Body/ABGroupContactAddResponse/ABGroupContactAddResult/guid"); |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1156 | |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1157 | if (guid != NULL) { |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1158 | char *uid = xmlnode_get_data(guid); |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1159 | msn_user_set_uid(user, uid); |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1160 | purple_debug_info("msn", "Set %s guid to %s.\n", state->who, uid); |
|
b29928b7857c
Save the MSN ContactID after adding a buddy so it can be used for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24419
diff
changeset
|
1161 | g_free(uid); |
|
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
|
1162 | } |
|
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
|
1163 | |
|
24786
056ef71b0cef
Updates for federated/Yahoo buddies:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24785
diff
changeset
|
1164 | msn_userlist_add_buddy_to_list(userlist, state->who, MSN_LIST_AL); |
|
056ef71b0cef
Updates for federated/Yahoo buddies:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24785
diff
changeset
|
1165 | msn_userlist_add_buddy_to_list(userlist, state->who, MSN_LIST_FL); |
|
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
|
1166 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1167 | if (msn_userlist_user_is_in_list(user, MSN_LIST_PL)) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1168 | msn_del_contact_from_list(state->session, NULL, state->who, MSN_LIST_PL); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1169 | return; |
|
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
|
1170 | } |
|
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
|
1171 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1172 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1173 | if (state->action & MSN_MOVE_BUDDY) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1174 | msn_del_contact_from_group(state->session, state->who, state->old_group_name); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1175 | } |
|
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
|
1176 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1177 | |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1178 | void |
|
23776
7c9016406cf1
explicit merge of 'b99873683821d4c450ce32e4a93ba2831d7507cc'
Elliott Sales de Andrade <qulogic@pidgin.im>
diff
changeset
|
1179 | msn_add_contact_to_group(MsnSession *session, 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
|
1180 | 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
|
1181 | { |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1182 | 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
|
1183 | MsnUser *user; |
|
27776
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1184 | gchar *body = NULL, *contact_xml, *invite; |
|
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
|
1185 | |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1186 | 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
|
1187 | 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
|
1188 | |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1189 | g_return_if_fail(session != NULL); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1190 | |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1191 | userlist = 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
|
1192 | |
|
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
|
1193 | if (!strcmp(groupId, MSN_INDIVIDUALS_GROUP_ID) || !strcmp(groupId, MSN_NON_IM_GROUP_ID)) { |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1194 | |
|
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
|
1195 | 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
|
1196 | |
|
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
|
1197 | if (state->action & MSN_ADD_BUDDY) { |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1198 | msn_add_contact(session, state, passport); |
|
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
|
1199 | 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
|
1200 | } |
|
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
|
1201 | |
|
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
|
1202 | 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
|
1203 | msn_user_add_group_id(user, groupId); |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1204 | msn_del_contact_from_group(session, passport, state->old_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
|
1205 | } |
|
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
|
1206 | |
|
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
|
1207 | 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
|
1208 | } |
|
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
|
1209 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1210 | purple_debug_info("msn", "Adding user %s to group %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
|
1211 | 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
|
1212 | |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1213 | 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
|
1214 | if (user == NULL) { |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1215 | purple_debug_warning("msn", "Unable to retrieve user %s from the userlist!\n", passport); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1216 | msn_callback_state_free(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
|
1217 | 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
|
1218 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1219 | |
|
24785
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1220 | if (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
|
1221 | contact_xml = g_strdup_printf(MSN_CONTACT_ID_XML, user->uid); |
|
24785
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1222 | } else if (user->networkid != MSN_NETWORK_PASSPORT) { |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1223 | contact_xml = g_strdup_printf(MSN_CONTACT_EMAIL_XML, |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1224 | user->networkid == MSN_NETWORK_YAHOO ? |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1225 | "Messenger2" : |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1226 | "Messenger3", |
|
b0f31511b083
Use ContactEmail to add federated buddies to the AddressBook. Those on Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24783
diff
changeset
|
1227 | passport, 0); |
|
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
|
1228 | } 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
|
1229 | 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
|
1230 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1231 | |
|
27776
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1232 | if (user->invite_message) { |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1233 | char *tmp; |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1234 | body = g_markup_escape_text(user->invite_message, -1); |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1235 | tmp = g_markup_escape_text(purple_connection_get_display_name(session->account->gc), -1); |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1236 | invite = g_strdup_printf(MSN_CONTACT_INVITE_MESSAGE_XML, body, tmp); |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1237 | g_free(body); |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1238 | g_free(tmp); |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1239 | |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1240 | /* We can free this now */ |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1241 | g_free(user->invite_message); |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1242 | user->invite_message = NULL; |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1243 | |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1244 | } else { |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1245 | invite = g_strdup(""); |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1246 | } |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1247 | |
|
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1248 | body = g_strdup_printf(MSN_ADD_CONTACT_GROUP_TEMPLATE, groupId, contact_xml, invite); |
|
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
|
1249 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1250 | state->body = xmlnode_from_str(body, -1); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1251 | state->post_action = MSN_ADD_CONTACT_GROUP_SOAP_ACTION; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1252 | state->post_url = MSN_ADDRESS_BOOK_POST_URL; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1253 | state->cb = msn_add_contact_to_group_read_cb; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1254 | msn_contact_request(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
|
1255 | |
|
27776
60d79d68cde1
On MSN, pop up an "invite message" request similar to oscar, and send that
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27361
diff
changeset
|
1256 | g_free(invite); |
|
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
|
1257 | 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
|
1258 | 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
|
1259 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1261 | 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
|
1262 | 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
|
1263 | gpointer data) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1264 | { |
|
21376
e91c52220a41
merge_into_workspace of d270fe91b138cf35b88afe13ead7fe51a6f5f88e and
Ka-Hing Cheung <khc@pidgin.im>
diff
changeset
|
1265 | MsnCallbackState *state = data; |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1266 | MsnUserList *userlist = state->session->userlist; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1267 | MsnUser *user = msn_userlist_find_user_with_id(userlist, state->uid); |
|
24781
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1268 | xmlnode *fault; |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1269 | |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1270 | /* We don't know how to respond to this faultcode, so log it */ |
|
24781
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1271 | fault = xmlnode_get_child(resp->xml, "Body/Fault"); |
|
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1272 | if (fault != NULL) { |
|
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1273 | char *fault_str = xmlnode_to_str(fault, NULL); |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1274 | purple_debug_error("msn", "Operation {%s} Failed, SOAP Fault was: %s\n", |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1275 | msn_contact_operation_str(state->action), fault_str); |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1276 | g_free(fault_str); |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1277 | return; |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1278 | } |
|
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
|
1279 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1280 | purple_debug_info("msn", "Delete contact successful\n"); |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1281 | |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1282 | if (user != NULL) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1283 | msn_userlist_remove_user(userlist, user); |
|
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
|
1284 | } |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1285 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1286 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1287 | /*delete a Contact*/ |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1288 | void |
|
24419
d093f97dcba7
Use the MSN passport in more places instead of the Contact ID if it's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24073
diff
changeset
|
1289 | msn_delete_contact(MsnSession *session, MsnUser *user) |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1290 | { |
|
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
|
1291 | 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
|
1292 | 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
|
1293 | MsnCallbackState *state; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1294 | |
|
24419
d093f97dcba7
Use the MSN passport in more places instead of the Contact ID if it's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24073
diff
changeset
|
1295 | if (user->uid != NULL) { |
|
d093f97dcba7
Use the MSN passport in more places instead of the Contact ID if it's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24073
diff
changeset
|
1296 | contact_id_xml = g_strdup_printf(MSN_CONTACT_ID_XML, user->uid); |
|
d093f97dcba7
Use the MSN passport in more places instead of the Contact ID if it's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24073
diff
changeset
|
1297 | purple_debug_info("msn", "Deleting contact with contactId: %s\n", user->uid); |
|
d093f97dcba7
Use the MSN passport in more places instead of the Contact ID if it's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24073
diff
changeset
|
1298 | } else { |
|
24780
a5995b315452
Deleting a contact without a ContactId doesn't work, so don't bother the server
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24779
diff
changeset
|
1299 | purple_debug_info("msn", "Unable to delete contact %s without a ContactId\n", user->passport); |
|
a5995b315452
Deleting a contact without a ContactId doesn't work, so don't bother the server
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24779
diff
changeset
|
1300 | return; |
|
24419
d093f97dcba7
Use the MSN passport in more places instead of the Contact ID if it's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24073
diff
changeset
|
1301 | } |
|
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
|
1302 | |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1303 | state = msn_callback_state_new(session); |
|
24419
d093f97dcba7
Use the MSN passport in more places instead of the Contact ID if it's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24073
diff
changeset
|
1304 | msn_callback_state_set_uid(state, user->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
|
1305 | |
|
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
|
1306 | /* 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
|
1307 | body = g_strdup_printf(MSN_DEL_CONTACT_TEMPLATE, contact_id_xml); |
|
23759
1abf46eeccec
fix sending offline message in p15 by sending the correct token. In msnp14,
Ka-Hing Cheung <khc@pidgin.im>
parents:
23758
diff
changeset
|
1308 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1309 | state->body = xmlnode_from_str(body, -1); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1310 | state->post_action = MSN_CONTACT_DEL_SOAP_ACTION; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1311 | state->post_url = MSN_ADDRESS_BOOK_POST_URL; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1312 | state->cb = msn_delete_contact_read_cb; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1313 | msn_contact_request(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
|
1314 | |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1315 | g_free(contact_id_xml); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1316 | g_free(body); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1317 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1318 | |
|
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
|
1319 | 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
|
1320 | 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
|
1321 | 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
|
1322 | { |
|
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
|
1323 | MsnCallbackState *state = data; |
|
24781
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1324 | xmlnode *fault; |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1325 | |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1326 | /* We don't know how to respond to this faultcode, so log it */ |
|
24781
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1327 | fault = xmlnode_get_child(resp->xml, "Body/Fault"); |
|
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1328 | if (fault != NULL) { |
|
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1329 | char *fault_str = xmlnode_to_str(fault, NULL); |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1330 | purple_debug_error("msn", "Operation {%s} Failed, SOAP Fault was: %s\n", |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1331 | msn_contact_operation_str(state->action), fault_str); |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1332 | g_free(fault_str); |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1333 | return; |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1334 | } |
|
20585
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
1335 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1336 | if (msn_userlist_rem_buddy_from_group(state->session->userlist, |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1337 | state->who, state->old_group_name)) { |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1338 | purple_debug_info("msn", "Contact %s deleted successfully from group %s\n", state->who, state->old_group_name); |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1339 | } else { |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1340 | purple_debug_info("msn", "Contact %s deleted successfully from group %s in the server, but failed in the local list\n", state->who, state->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
|
1341 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | void |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1345 | msn_del_contact_from_group(MsnSession *session, const char *passport, const char *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
|
1346 | { |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | 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
|
1348 | 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
|
1349 | 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
|
1350 | 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
|
1351 | const gchar *groupId; |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1352 | |
|
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
|
1353 | 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
|
1354 | g_return_if_fail(group_name != NULL); |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1355 | g_return_if_fail(session != NULL); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1356 | |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1357 | userlist = session->userlist; |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1358 | |
|
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
|
1359 | 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
|
1360 | if (groupId != NULL) { |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1361 | purple_debug_info("msn", "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
|
1362 | } else { |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1363 | purple_debug_warning("msn", "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
|
1364 | 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
|
1365 | } |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1366 | |
|
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
|
1367 | user = msn_userlist_find_user(userlist, passport); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1368 | |
|
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
|
1369 | if (user == NULL) { |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1370 | purple_debug_warning("msn", "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
|
1371 | 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
|
1372 | } |
|
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
|
1373 | |
|
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
|
1374 | 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
|
1375 | 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
|
1376 | 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
|
1377 | } |
|
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
|
1378 | |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1379 | 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
|
1380 | 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
|
1381 | 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
|
1382 | 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
|
1383 | |
|
24419
d093f97dcba7
Use the MSN passport in more places instead of the Contact ID if it's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24073
diff
changeset
|
1384 | if (user->uid != NULL) |
|
d093f97dcba7
Use the MSN passport in more places instead of the Contact ID if it's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24073
diff
changeset
|
1385 | contact_id_xml = g_strdup_printf(MSN_CONTACT_ID_XML, user->uid); |
|
d093f97dcba7
Use the MSN passport in more places instead of the Contact ID if it's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24073
diff
changeset
|
1386 | else |
|
d093f97dcba7
Use the MSN passport in more places instead of the Contact ID if it's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24073
diff
changeset
|
1387 | contact_id_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
|
1388 | 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
|
1389 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1390 | state->body = xmlnode_from_str(body, -1); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1391 | state->post_action = MSN_CONTACT_DEL_GROUP_SOAP_ACTION; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1392 | state->post_url = MSN_ADDRESS_BOOK_POST_URL; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1393 | state->cb = msn_del_contact_from_group_read_cb; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1394 | msn_contact_request(state); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1395 | |
|
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
|
1396 | 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
|
1397 | 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
|
1398 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and 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 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1401 | 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
|
1402 | 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
|
1403 | gpointer data) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1404 | { |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1405 | MsnCallbackState *state = (MsnCallbackState *)data; |
|
24781
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1406 | xmlnode *fault; |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1407 | |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1408 | /* We don't know how to respond to this faultcode, so log it */ |
|
24781
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1409 | fault = xmlnode_get_child(resp->xml, "Body/Fault"); |
|
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1410 | if (fault != NULL) { |
|
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1411 | char *fault_str = xmlnode_to_str(fault, NULL); |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1412 | purple_debug_error("msn", "Operation {%s} Failed, SOAP Fault was: %s\n", |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1413 | msn_contact_operation_str(state->action), fault_str); |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1414 | g_free(fault_str); |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1415 | return; |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1416 | } |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1417 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1418 | purple_debug_info("msn", "Contact updated successfully\n"); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1419 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1420 | |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1421 | /* Update a contact's info */ |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1422 | void |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1423 | msn_update_contact(MsnSession *session, const char *passport, MsnContactUpdateType type, const char* value) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1424 | { |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1425 | MsnCallbackState *state; |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1426 | xmlnode *contact; |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1427 | xmlnode *contact_info; |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1428 | xmlnode *changes; |
|
28614
1746321a8c5b
Don't attempt to change the alias on the server if the contact is not (yet)
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28613
diff
changeset
|
1429 | MsnUser *user = NULL; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1430 | |
|
28613
a91c90f8d63a
Don't crash is passport is NULL on Windows. I don't know why this would
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28345
diff
changeset
|
1431 | purple_debug_info("msn", "Update contact information for %s with new %s: %s\n", |
|
a91c90f8d63a
Don't crash is passport is NULL on Windows. I don't know why this would
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28345
diff
changeset
|
1432 | passport ? passport : "(null)", |
|
25474
68953d297668
Don't crash on Windows when removing an alias for an MSN buddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25155
diff
changeset
|
1433 | type == MSN_UPDATE_DISPLAY ? "display name" : "alias", |
|
68953d297668
Don't crash on Windows when removing an alias for an MSN buddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25155
diff
changeset
|
1434 | value ? value : "(null)"); |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1435 | g_return_if_fail(passport != NULL); |
|
28613
a91c90f8d63a
Don't crash is passport is NULL on Windows. I don't know why this would
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28345
diff
changeset
|
1436 | |
|
28614
1746321a8c5b
Don't attempt to change the alias on the server if the contact is not (yet)
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28613
diff
changeset
|
1437 | if (strcmp(passport, "Me") != 0) { |
|
1746321a8c5b
Don't attempt to change the alias on the server if the contact is not (yet)
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28613
diff
changeset
|
1438 | user = msn_userlist_find_user(session->userlist, passport); |
|
1746321a8c5b
Don't attempt to change the alias on the server if the contact is not (yet)
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28613
diff
changeset
|
1439 | if (!user) |
|
1746321a8c5b
Don't attempt to change the alias on the server if the contact is not (yet)
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28613
diff
changeset
|
1440 | return; |
|
1746321a8c5b
Don't attempt to change the alias on the server if the contact is not (yet)
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28613
diff
changeset
|
1441 | } |
|
1746321a8c5b
Don't attempt to change the alias on the server if the contact is not (yet)
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28613
diff
changeset
|
1442 | |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1443 | contact_info = xmlnode_new("contactInfo"); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1444 | changes = xmlnode_new("propertiesChanged"); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1445 | |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1446 | switch (type) { |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1447 | xmlnode *annotations; |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1448 | xmlnode *display; |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1449 | xmlnode *a, *n, *v; |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1450 | case MSN_UPDATE_DISPLAY: |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1451 | display = xmlnode_new_child(contact_info, "displayName"); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1452 | xmlnode_insert_data(display, value, -1); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1453 | xmlnode_insert_data(changes, "DisplayName", -1); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1454 | break; |
|
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
|
1455 | |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1456 | case MSN_UPDATE_ALIAS: |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1457 | annotations = xmlnode_new_child(contact_info, "annotations"); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1458 | xmlnode_insert_data(changes, "Annotation ", -1); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1459 | |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1460 | a = xmlnode_new_child(annotations, "Annotation"); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1461 | n = xmlnode_new_child(a, "Name"); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1462 | xmlnode_insert_data(n, "AB.NickName", -1); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1463 | v = xmlnode_new_child(a, "Value"); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1464 | xmlnode_insert_data(v, value, -1); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1465 | break; |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1466 | |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1467 | default: |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1468 | g_return_if_reached(); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1469 | } |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1470 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1471 | state = msn_callback_state_new(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
|
1472 | |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1473 | state->body = xmlnode_from_str(MSN_CONTACT_UPDATE_TEMPLATE, -1); |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1474 | state->action = MSN_UPDATE_INFO; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1475 | state->post_action = MSN_CONTACT_UPDATE_SOAP_ACTION; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1476 | state->post_url = MSN_ADDRESS_BOOK_POST_URL; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1477 | state->cb = msn_update_contact_read_cb; |
|
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
|
1478 | |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1479 | contact = xmlnode_get_child(state->body, "Body/ABContactUpdate/contacts/Contact"); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1480 | xmlnode_insert_child(contact, contact_info); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1481 | xmlnode_insert_child(contact, changes); |
|
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
|
1482 | |
|
28614
1746321a8c5b
Don't attempt to change the alias on the server if the contact is not (yet)
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28613
diff
changeset
|
1483 | if (user) { |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1484 | xmlnode *contactId = xmlnode_new_child(contact, "contactId"); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1485 | msn_callback_state_set_uid(state, user->uid); |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1486 | xmlnode_insert_data(contactId, state->uid, -1); |
|
28614
1746321a8c5b
Don't attempt to change the alias on the server if the contact is not (yet)
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28613
diff
changeset
|
1487 | } else { |
|
1746321a8c5b
Don't attempt to change the alias on the server if the contact is not (yet)
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28613
diff
changeset
|
1488 | xmlnode *contactType = xmlnode_new_child(contact_info, "contactType"); |
|
1746321a8c5b
Don't attempt to change the alias on the server if the contact is not (yet)
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28613
diff
changeset
|
1489 | xmlnode_insert_data(contactType, "Me", -1); |
|
23784
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1490 | } |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1491 | |
|
f09ed4e732df
Add real server-side aliasing to MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23782
diff
changeset
|
1492 | msn_contact_request(state); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1493 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1494 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1495 | 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
|
1496 | 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
|
1497 | gpointer data) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1498 | { |
|
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
|
1499 | 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
|
1500 | MsnSession *session = state->session; |
|
24781
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1501 | xmlnode *fault; |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1502 | |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1503 | /* We don't know how to respond to this faultcode, so log it */ |
|
24781
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1504 | fault = xmlnode_get_child(resp->xml, "Body/Fault"); |
|
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1505 | if (fault != NULL) { |
|
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1506 | char *fault_str = xmlnode_to_str(fault, NULL); |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1507 | purple_debug_error("msn", "Operation {%s} Failed, SOAP Fault was: %s\n", |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1508 | msn_contact_operation_str(state->action), fault_str); |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1509 | g_free(fault_str); |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1510 | return; |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1511 | } |
|
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
|
1512 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1513 | purple_debug_info("msn", "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
|
1514 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1515 | if (state->list_id == MSN_LIST_PL) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1516 | MsnUser *user = msn_userlist_find_user(session->userlist, state->who); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1517 | MsnCallbackState *new_state = msn_callback_state_dup(state); |
|
20850
8905d796644b
Keep MsnUser->list_op in sync.
Carlos Silva <typ0@pidgin.im>
parents:
20849
diff
changeset
|
1518 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1519 | if (user != NULL) |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1520 | 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
|
1521 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1522 | msn_add_contact_to_list(session, new_state, state->who, MSN_LIST_RL); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1523 | return; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1524 | } else if (state->list_id == MSN_LIST_AL) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1525 | purple_privacy_permit_remove(session->account, state->who, TRUE); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1526 | msn_add_contact_to_list(session, NULL, state->who, MSN_LIST_BL); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1527 | } else if (state->list_id == MSN_LIST_BL) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1528 | purple_privacy_deny_remove(session->account, state->who, TRUE); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1529 | msn_add_contact_to_list(session, NULL, state->who, MSN_LIST_AL); |
|
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
|
1530 | } |
|
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
|
1531 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1532 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1533 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1534 | void |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1535 | msn_del_contact_from_list(MsnSession *session, MsnCallbackState *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
|
1536 | const gchar *passport, const MsnListId list) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1537 | { |
|
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
|
1538 | 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
|
1539 | 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
|
1540 | 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
|
1541 | |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1542 | g_return_if_fail(session != NULL); |
|
24786
056ef71b0cef
Updates for federated/Yahoo buddies:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24785
diff
changeset
|
1543 | g_return_if_fail(session->userlist != NULL); |
|
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
|
1544 | 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
|
1545 | 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
|
1546 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1547 | purple_debug_info("msn", "Deleting contact %s from %s list\n", passport, MsnMemberRole[list]); |
|
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
|
1548 | |
|
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
|
1549 | if (state == NULL) { |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1550 | state = msn_callback_state_new(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
|
1551 | } |
|
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
|
1552 | 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
|
1553 | 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
|
1554 | |
|
24786
056ef71b0cef
Updates for federated/Yahoo buddies:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24785
diff
changeset
|
1555 | user = msn_userlist_find_user(session->userlist, passport); |
|
056ef71b0cef
Updates for federated/Yahoo buddies:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24785
diff
changeset
|
1556 | |
|
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
|
1557 | 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
|
1558 | partner_scenario = MSN_PS_CONTACT_API; |
|
25722
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1559 | if (user && user->networkid != MSN_NETWORK_PASSPORT) |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1560 | member = g_strdup_printf(MSN_MEMBER_MEMBERSHIPID_XML, |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1561 | "EmailMember", "Email", |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1562 | user->membership_id[MSN_LIST_PL]); |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1563 | else |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1564 | member = g_strdup_printf(MSN_MEMBER_MEMBERSHIPID_XML, |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1565 | "PassportMember", "Passport", |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1566 | user->membership_id[MSN_LIST_PL]); |
|
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
|
1567 | } 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
|
1568 | /* 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
|
1569 | partner_scenario = MSN_PS_BLOCK_UNBLOCK; |
|
25722
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1570 | if (user && user->networkid != MSN_NETWORK_PASSPORT) |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1571 | member = g_strdup_printf(MSN_MEMBER_PASSPORT_XML, |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1572 | "EmailMember", "Email", |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1573 | "Email", passport, "Email"); |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1574 | else |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1575 | member = g_strdup_printf(MSN_MEMBER_PASSPORT_XML, |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1576 | "PassportMember", "Passport", |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1577 | "PassportName", passport, "PassportName"); |
|
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
|
1578 | } |
|
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
|
1579 | |
|
24782
9ec0db5da66f
Fix a typo in a name.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24781
diff
changeset
|
1580 | body = g_strdup_printf(MSN_CONTACT_DELETE_FROM_LIST_TEMPLATE, |
|
23759
1abf46eeccec
fix sending offline message in p15 by sending the correct token. In msnp14,
Ka-Hing Cheung <khc@pidgin.im>
parents:
23758
diff
changeset
|
1581 | MsnSoapPartnerScenarioText[partner_scenario], |
|
1abf46eeccec
fix sending offline message in p15 by sending the correct token. In msnp14,
Ka-Hing Cheung <khc@pidgin.im>
parents:
23758
diff
changeset
|
1582 | MsnMemberRole[list], 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
|
1583 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1584 | state->body = xmlnode_from_str(body, -1); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1585 | state->post_action = MSN_DELETE_MEMBER_FROM_LIST_SOAP_ACTION; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1586 | state->post_url = MSN_SHARE_POST_URL; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1587 | state->cb = msn_del_contact_from_list_read_cb; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1588 | msn_contact_request(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
|
1589 | |
|
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
|
1590 | 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
|
1591 | 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
|
1592 | } |
|
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
|
1593 | |
|
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
|
1594 | 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
|
1595 | 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
|
1596 | 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
|
1597 | { |
|
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
|
1598 | MsnCallbackState *state = data; |
|
24781
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1599 | xmlnode *fault; |
|
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
|
1600 | |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1601 | /* We don't know how to respond to this faultcode, so log it */ |
|
24781
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1602 | fault = xmlnode_get_child(resp->xml, "Body/Fault"); |
|
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1603 | if (fault != NULL) { |
|
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1604 | char *fault_str = xmlnode_to_str(fault, NULL); |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1605 | purple_debug_error("msn", "Operation {%s} Failed, SOAP Fault was: %s\n", |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1606 | msn_contact_operation_str(state->action), fault_str); |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1607 | g_free(fault_str); |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1608 | return; |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1609 | } |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1610 | |
|
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
|
1611 | g_return_if_fail(state->session != NULL); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1612 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1613 | purple_debug_info("msn", "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
|
1614 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1615 | if (state->list_id == MSN_LIST_RL) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1616 | MsnUser *user = msn_userlist_find_user(state->session->userlist, state->who); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1617 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1618 | if (user != NULL) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1619 | msn_user_set_op(user, MSN_LIST_RL_OP); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1620 | } |
|
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
|
1621 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1622 | if (state->action & MSN_DENIED_BUDDY) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1623 | msn_add_contact_to_list(state->session, NULL, state->who, MSN_LIST_BL); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1624 | } else if (state->list_id == MSN_LIST_AL) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1625 | purple_privacy_permit_add(state->session->account, state->who, TRUE); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1626 | } else if (state->list_id == MSN_LIST_BL) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1627 | purple_privacy_deny_add(state->session->account, state->who, TRUE); |
|
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
|
1628 | } |
|
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
|
1629 | } |
|
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
|
1630 | } |
|
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
|
1631 | |
|
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
|
1632 | void |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1633 | msn_add_contact_to_list(MsnSession *session, MsnCallbackState *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
|
1634 | 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
|
1635 | { |
|
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
|
1636 | 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
|
1637 | MsnSoapPartnerScenario partner_scenario; |
|
24786
056ef71b0cef
Updates for federated/Yahoo buddies:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24785
diff
changeset
|
1638 | MsnUser *user; |
|
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
|
1639 | |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1640 | g_return_if_fail(session != NULL); |
|
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
|
1641 | 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
|
1642 | 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
|
1643 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1644 | purple_debug_info("msn", "Adding contact %s to %s list\n", passport, MsnMemberRole[list]); |
|
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
|
1645 | |
|
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
|
1646 | if (state == NULL) { |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1647 | state = msn_callback_state_new(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
|
1648 | } |
|
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
|
1649 | 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
|
1650 | 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
|
1651 | |
|
24786
056ef71b0cef
Updates for federated/Yahoo buddies:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24785
diff
changeset
|
1652 | user = msn_userlist_find_user(session->userlist, passport); |
|
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
|
1653 | |
|
24786
056ef71b0cef
Updates for federated/Yahoo buddies:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24785
diff
changeset
|
1654 | partner_scenario = (list == MSN_LIST_RL) ? MSN_PS_CONTACT_API : MSN_PS_BLOCK_UNBLOCK; |
|
25722
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1655 | if (user && user->networkid != MSN_NETWORK_PASSPORT) |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1656 | member = g_strdup_printf(MSN_MEMBER_PASSPORT_XML, |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1657 | "EmailMember", "Email", |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1658 | "Email", state->who, "Email"); |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1659 | else |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1660 | member = g_strdup_printf(MSN_MEMBER_PASSPORT_XML, |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1661 | "PassportMember", "Passport", |
|
0890f9dce29e
Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25634
diff
changeset
|
1662 | "PassportName", state->who, "PassportName"); |
|
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
|
1663 | |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1664 | body = g_strdup_printf(MSN_CONTACT_ADD_TO_LIST_TEMPLATE, |
|
23759
1abf46eeccec
fix sending offline message in p15 by sending the correct token. In msnp14,
Ka-Hing Cheung <khc@pidgin.im>
parents:
23758
diff
changeset
|
1665 | MsnSoapPartnerScenarioText[partner_scenario], |
|
1abf46eeccec
fix sending offline message in p15 by sending the correct token. In msnp14,
Ka-Hing Cheung <khc@pidgin.im>
parents:
23758
diff
changeset
|
1666 | MsnMemberRole[list], 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
|
1667 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1668 | state->body = xmlnode_from_str(body, -1); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1669 | state->post_action = MSN_ADD_MEMBER_TO_LIST_SOAP_ACTION; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1670 | state->post_url = MSN_SHARE_POST_URL; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1671 | state->cb = msn_add_contact_to_list_read_cb; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1672 | msn_contact_request(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
|
1673 | |
|
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
|
1674 | g_free(member); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1675 | g_free(body); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1676 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1677 | |
|
20510
cba185e9a346
Fix a compile warning by #if 0'ing out some unused code
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20486
diff
changeset
|
1678 | #if 0 |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1679 | 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
|
1680 | 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
|
1681 | { |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1682 | purple_debug_info("msn", "Gleams read done\n"); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1683 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1684 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1685 | /*get the gleams info*/ |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1686 | void |
|
23771
c98f7e879218
killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@pidgin.im>
parents:
23765
diff
changeset
|
1687 | msn_get_gleams(MsnSession *session) |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1688 | { |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1689 | MsnSoapReq *soap_request; |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1690 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1691 | purple_debug_info("msn", "msn get gleams info...\n"); |
|
23776
7c9016406cf1
explicit merge of 'b99873683821d4c450ce32e4a93ba2831d7507cc'
Elliott Sales de Andrade <qulogic@pidgin.im>
diff
changeset
|
1692 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1693 | state = msn_callback_state_new(session); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1694 | state->body = xmlnode_from_str(MSN_GLEAMS_TEMPLATE, -1); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1695 | state->post_action = MSN_GET_GLEAMS_SOAP_ACTION; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1696 | state->post_url = MSN_ADDRESS_BOOK_POST_URL; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1697 | state->cb = msn_gleams_read_cb; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1698 | msn_contact_request(state); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1699 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1700 | #endif |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1701 | |
|
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
|
1702 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1703 | /*************************************************************** |
|
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
|
1704 | * Group Operations |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1705 | ***************************************************************/ |
|
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
|
1706 | |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1707 | 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
|
1708 | 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
|
1709 | { |
|
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
|
1710 | MsnCallbackState *state = data; |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1711 | MsnSession *session; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1712 | MsnUserList *userlist; |
|
24781
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1713 | xmlnode *fault; |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1714 | |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1715 | /* We don't know how to respond to this faultcode, so log it */ |
|
24781
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1716 | fault = xmlnode_get_child(resp->xml, "Body/Fault"); |
|
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1717 | if (fault != NULL) { |
|
5c1d0615a168
Split up that faultcode stuff I just changed. Stops it from printing an annoying
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24780
diff
changeset
|
1718 | char *fault_str = xmlnode_to_str(fault, NULL); |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1719 | purple_debug_error("msn", "Operation {%s} Failed, SOAP Fault was: %s\n", |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1720 | msn_contact_operation_str(state->action), fault_str); |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1721 | g_free(fault_str); |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1722 | return; |
|
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1723 | } |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1724 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1725 | purple_debug_info("msn", "Group request successful.\n"); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1726 | |
|
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
|
1727 | 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
|
1728 | g_return_if_fail(state->session->userlist != 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
|
1729 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1730 | session = state->session; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1731 | userlist = session->userlist; |
|
20585
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
1732 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1733 | if (state->action & MSN_RENAME_GROUP) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1734 | msn_userlist_rename_group_id(session->userlist, |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1735 | state->guid, |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1736 | state->new_group_name); |
|
20585
a82494142fe3
cleans up ownership of soap callback data, this soap stuff is perfect
Ka-Hing Cheung <khc@pidgin.im>
parents:
20578
diff
changeset
|
1737 | } |
|
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
|
1738 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1739 | if (state->action & MSN_ADD_GROUP) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1740 | /* the response is taken from |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1741 | http://telepathy.freedesktop.org/wiki/Pymsn/MSNP/ContactListActions |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1742 | should copy it to msnpiki some day */ |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1743 | xmlnode *guid_node = xmlnode_get_child(resp->xml, |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1744 | "Body/ABGroupAddResponse/ABGroupAddResult/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
|
1745 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1746 | if (guid_node) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1747 | char *guid = xmlnode_get_data(guid_node); |
|
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
|
1748 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1749 | /* create and add the new group to the userlist */ |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1750 | purple_debug_info("msn", "Adding group %s with guid = %s to the userlist\n", state->new_group_name, guid); |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1751 | 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
|
1752 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1753 | if (state->action & MSN_ADD_BUDDY) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1754 | msn_userlist_add_buddy(session->userlist, |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1755 | state->who, |
|
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
|
1756 | state->new_group_name); |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1757 | } else if (state->action & MSN_MOVE_BUDDY) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1758 | /* This will be freed when the add contact callback fires */ |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1759 | MsnCallbackState *new_state = msn_callback_state_dup(state); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1760 | msn_add_contact_to_group(session, new_state, state->who, guid); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1761 | g_free(guid); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1762 | return; |
|
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
|
1763 | } |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1764 | g_free(guid); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1765 | } else { |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1766 | purple_debug_info("msn", "Adding group %s failed\n", |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1767 | 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
|
1768 | } |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1769 | } |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1770 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1771 | if (state->action & MSN_DEL_GROUP) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1772 | GList *l; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1773 | |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1774 | msn_userlist_remove_group_id(session->userlist, state->guid); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1775 | for (l = userlist->users; l != NULL; l = l->next) { |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1776 | msn_user_remove_group_id( (MsnUser *)l->data, 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
|
1777 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1778 | } |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1779 | } |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1780 | |
|
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
|
1781 | /* 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
|
1782 | 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
|
1783 | 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
|
1784 | { |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1785 | char *body = NULL; |
|
23758
873b77e99c8e
Patch 4 from Qulogic, this one fixes a group name escape bug introduced by
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23757
diff
changeset
|
1786 | char *escaped_group_name = NULL; |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1787 | |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1788 | 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
|
1789 | g_return_if_fail(group_name != NULL); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1790 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1791 | purple_debug_info("msn", "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
|
1792 | |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1793 | 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
|
1794 | 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
|
1795 | } |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1796 | |
|
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
|
1797 | 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
|
1798 | 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
|
1799 | |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1800 | /* 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
|
1801 | * 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
|
1802 | */ |
|
23758
873b77e99c8e
Patch 4 from Qulogic, this one fixes a group name escape bug introduced by
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23757
diff
changeset
|
1803 | escaped_group_name = g_markup_escape_text(group_name, -1); |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1804 | body = g_strdup_printf(MSN_GROUP_ADD_TEMPLATE, escaped_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
|
1805 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1806 | state->body = xmlnode_from_str(body, -1); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1807 | state->post_action = MSN_GROUP_ADD_SOAP_ACTION; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1808 | state->post_url = MSN_ADDRESS_BOOK_POST_URL; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1809 | state->cb = msn_group_read_cb; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1810 | msn_contact_request(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
|
1811 | |
|
23759
1abf46eeccec
fix sending offline message in p15 by sending the correct token. In msnp14,
Ka-Hing Cheung <khc@pidgin.im>
parents:
23758
diff
changeset
|
1812 | g_free(escaped_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
|
1813 | 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
|
1814 | } |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1815 | |
|
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
|
1816 | /* 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
|
1817 | 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
|
1818 | 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
|
1819 | { |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1820 | 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
|
1821 | 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
|
1822 | 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
|
1823 | |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1824 | g_return_if_fail(session != NULL); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1825 | |
|
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
|
1826 | g_return_if_fail(group_name != NULL); |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1827 | purple_debug_info("msn", "Deleting group %s from contact list\n", group_name); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1828 | |
|
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
|
1829 | guid = msn_userlist_find_group_id(session->userlist, group_name); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1830 | |
|
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1831 | /* if group uid we need to del is 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
|
1832 | * 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
|
1833 | */ |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1834 | if (guid == NULL) { |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1835 | purple_debug_info("msn", "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
|
1836 | 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
|
1837 | } |
|
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
|
1838 | |
|
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
|
1839 | if ( !strcmp(guid, MSN_INDIVIDUALS_GROUP_ID) || !strcmp(guid, MSN_NON_IM_GROUP_ID) ) { |
|
23833
1a4c1d44858d
Take care of more cleanup in the MSN code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23830
diff
changeset
|
1840 | /* 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
|
1841 | 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
|
1842 | } |
|
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
|
1843 | |
|
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
|
1844 | 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
|
1845 | 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
|
1846 | msn_callback_state_set_guid(state, guid); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1847 | |
|
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
|
1848 | 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
|
1849 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1850 | state->body = xmlnode_from_str(body, -1); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1851 | state->post_action = MSN_GROUP_DEL_SOAP_ACTION; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1852 | state->post_url = MSN_ADDRESS_BOOK_POST_URL; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1853 | state->cb = msn_group_read_cb; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1854 | msn_contact_request(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
|
1855 | |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1856 | 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
|
1857 | } |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1858 | |
|
35675dd4a44d
Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents:
20562
diff
changeset
|
1859 | /* 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
|
1860 | 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
|
1861 | 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
|
1862 | { |
|
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
|
1863 | 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
|
1864 | 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
|
1865 | MsnCallbackState *state; |
|
23758
873b77e99c8e
Patch 4 from Qulogic, this one fixes a group name escape bug introduced by
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23757
diff
changeset
|
1866 | char *escaped_group_name; |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1867 | |
|
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
|
1868 | 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
|
1869 | 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
|
1870 | 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
|
1871 | g_return_if_fail(new_group_name != NULL); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1872 | |
|
23830
1436e3de5d6c
The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23819
diff
changeset
|
1873 | purple_debug_info("msn", "Renaming group %s to %s.\n", old_group_name, new_group_name); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1874 | |
|
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
|
1875 | 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
|
1876 | 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
|
1877 | 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
|
1878 | |
|
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
|
1879 | 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
|
1880 | 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
|
1881 | 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
|
1882 | |
|
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
|
1883 | if ( !strcmp(guid, MSN_INDIVIDUALS_GROUP_ID) || !strcmp(guid, MSN_NON_IM_GROUP_ID) ) { |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1884 | MsnCallbackState *new_state = msn_callback_state_dup(state); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1885 | msn_add_group(session, new_state, new_group_name); |
|
23833
1a4c1d44858d
Take care of more cleanup in the MSN code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23830
diff
changeset
|
1886 | /* XXX move every buddy there (we probably need to fix concurrent SOAP reqs first) */ |
|
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
|
1887 | } |
|
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
|
1888 | |
|
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
|
1889 | msn_callback_state_set_action(state, MSN_RENAME_GROUP); |
|
23441
fd45c23a3eb2
Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
22981
diff
changeset
|
1890 | |
|
23758
873b77e99c8e
Patch 4 from Qulogic, this one fixes a group name escape bug introduced by
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23757
diff
changeset
|
1891 | escaped_group_name = g_markup_escape_text(new_group_name, -1); |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1892 | body = g_strdup_printf(MSN_GROUP_RENAME_TEMPLATE, guid, escaped_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
|
1893 | |
|
23782
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1894 | state->body = xmlnode_from_str(body, -1); |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1895 | state->post_action = MSN_GROUP_RENAME_SOAP_ACTION; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1896 | state->post_url = MSN_ADDRESS_BOOK_POST_URL; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1897 | state->cb = msn_group_read_cb; |
|
56c9f93017e1
Update MSN Contact tokens when an invalid token error is returned.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23776
diff
changeset
|
1898 | msn_contact_request(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
|
1899 | |
|
23759
1abf46eeccec
fix sending offline message in p15 by sending the correct token. In msnp14,
Ka-Hing Cheung <khc@pidgin.im>
parents:
23758
diff
changeset
|
1900 | g_free(escaped_group_name); |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1901 | g_free(body); |
|
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents:
diff
changeset
|
1902 | } |
|
24777
88a91411beb5
Send the SOAP faultcode to the callbacks for each Contact operation. They all
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24776
diff
changeset
|
1903 |