Sun, 23 Nov 2014 23:20:53 -0500
Merge with release-2.x.y (with a number of conflicts)
* Lots of po files conflicted and I just chose the files from default.
| 5309 | 1 | /** |
| 2 | * @file session.c MSN session functions | |
| 3 | * | |
| 15884 | 4 | * purple |
| 5309 | 5 | * |
| 15884 | 6 | * Purple is the legal property of its developers, whose names are too numerous |
|
9198
e8eb6d5eb9eb
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
7 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
e8eb6d5eb9eb
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
8 | * source distribution. |
|
6701
7e2db9273748
[gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
9 | * |
| 5309 | 10 | * This program is free software; you can redistribute it and/or modify |
| 11 | * it under the terms of the GNU General Public License as published by | |
| 12 | * the Free Software Foundation; either version 2 of the License, or | |
| 13 | * (at your option) any later version. | |
| 14 | * | |
| 15 | * This program is distributed in the hope that it will be useful, | |
| 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 18 | * GNU General Public License for more details. | |
| 19 | * | |
| 20 | * You should have received a copy of the GNU General Public License | |
| 21 | * along with this program; if not, write to the Free Software | |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
17686
diff
changeset
|
22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 5309 | 23 | */ |
|
30945
b875cf477e19
Remove unnecesary includes from msn.h.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
30944
diff
changeset
|
24 | |
|
30961
885064b16c54
Include internal.h on each c file to avoid windows breakage as recommended by Daniel.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
30945
diff
changeset
|
25 | #include "internal.h" |
|
30945
b875cf477e19
Remove unnecesary includes from msn.h.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
30944
diff
changeset
|
26 | #include "debug.h" |
|
34227
6d016a081401
HTTP: migrate purple_util_fetch_url to new API for prpls
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34108
diff
changeset
|
27 | #include "http.h" |
|
30945
b875cf477e19
Remove unnecesary includes from msn.h.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
30944
diff
changeset
|
28 | |
|
30911
e0a4f4418d83
msn: Merge dialog and error to get an unified msn_error api.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29447
diff
changeset
|
29 | #include "error.h" |
|
29420
c81c525111db
Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27635
diff
changeset
|
30 | #include "msnutils.h" |
| 5309 | 31 | #include "session.h" |
|
7288
486e8b44a14b
[gaim-migrate @ 7869]
Christian Hammond <chipx86@chipx86.com>
parents:
6827
diff
changeset
|
32 | #include "notification.h" |
|
21361
f890366c8ec6
oim migrated to new soap code, quadruply duplicated message!
Ka-Hing Cheung <khc@pidgin.im>
parents:
21360
diff
changeset
|
33 | #include "oim.h" |
| 5309 | 34 | |
| 35 | MsnSession * | |
| 15884 | 36 | msn_session_new(PurpleAccount *account) |
| 5309 | 37 | { |
| 38 | MsnSession *session; | |
| 39 | ||
| 40 | g_return_val_if_fail(account != NULL, NULL); | |
| 41 | ||
| 42 | session = g_new0(MsnSession, 1); | |
| 43 | ||
|
34269
26b4c9a54166
HTTP: Use PurpleHttpConnectionSet instead of GSLists of PurpleHttpConnection structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34265
diff
changeset
|
44 | session->http_reqs = purple_http_connection_set_new(); |
|
26b4c9a54166
HTTP: Use PurpleHttpConnectionSet instead of GSLists of PurpleHttpConnection structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34265
diff
changeset
|
45 | |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
46 | session->account = account; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
47 | session->notification = msn_notification_new(session); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
48 | session->userlist = msn_userlist_new(session); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
49 | |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
50 | session->user = msn_user_new(session->userlist, |
| 15884 | 51 | purple_account_get_username(account), NULL); |
|
31482
a189fa1292c9
Fix a memleak in the MSN prpl when removing a buddy from your buddy list.
Mark Doliner <markdoliner@pidgin.im>
parents:
31224
diff
changeset
|
52 | msn_userlist_add_user(session->userlist, session->user); |
|
21361
f890366c8ec6
oim migrated to new soap code, quadruply duplicated message!
Ka-Hing Cheung <khc@pidgin.im>
parents:
21360
diff
changeset
|
53 | session->oim = msn_oim_new(session); |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
54 | |
|
29421
4259f9512ab4
Fix MSN protocol version detection to use the best version returned by the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
29420
diff
changeset
|
55 | session->protocol_ver = 0; |
|
31210
0aa08cb723ac
Replace the mpop account setting with a session boolean, because I
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
31198
diff
changeset
|
56 | session->enable_mpop = TRUE; /* Default only */ |
|
6701
7e2db9273748
[gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
57 | |
|
29420
c81c525111db
Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27635
diff
changeset
|
58 | session->guid = rand_guid(); |
|
6701
7e2db9273748
[gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
59 | |
|
34265
e6de87604147
HTTP: get rid of the second msn's own HTTP implementation (for soap)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34227
diff
changeset
|
60 | session->soap = msn_soap_service_new(session); |
|
e6de87604147
HTTP: get rid of the second msn's own HTTP implementation (for soap)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34227
diff
changeset
|
61 | |
| 5309 | 62 | return session; |
| 63 | } | |
| 64 | ||
| 65 | void | |
| 66 | msn_session_destroy(MsnSession *session) | |
| 67 | { | |
| 68 | g_return_if_fail(session != NULL); | |
| 69 | ||
|
10296
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10284
diff
changeset
|
70 | session->destroying = TRUE; |
|
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10284
diff
changeset
|
71 | |
|
34269
26b4c9a54166
HTTP: Use PurpleHttpConnectionSet instead of GSLists of PurpleHttpConnection structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34265
diff
changeset
|
72 | purple_http_connection_set_destroy(session->http_reqs); |
|
30579
458621d24012
Save and cancel-on-exit any URL requests, instead of checking the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30527
diff
changeset
|
73 | |
|
24017
c413ed3e4bdb
I guess I re-arranged a little off. We probably should disconnect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24004
diff
changeset
|
74 | if (session->connected) |
|
c413ed3e4bdb
I guess I re-arranged a little off. We probably should disconnect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24004
diff
changeset
|
75 | msn_session_disconnect(session); |
|
c413ed3e4bdb
I guess I re-arranged a little off. We probably should disconnect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24004
diff
changeset
|
76 | |
|
34265
e6de87604147
HTTP: get rid of the second msn's own HTTP implementation (for soap)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34227
diff
changeset
|
77 | msn_soap_service_destroy(session->soap); |
|
24004
54237efbb963
Re-arrange msn_session_destroy to avoid use-after-free bugs. I don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24003
diff
changeset
|
78 | |
|
54237efbb963
Re-arrange msn_session_destroy to avoid use-after-free bugs. I don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24003
diff
changeset
|
79 | while (session->slplinks != NULL) |
|
31032
b25150599f00
Hide msn_slplink_destroy and use the unref version everywhere.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
30961
diff
changeset
|
80 | msn_slplink_unref(session->slplinks->data); |
|
24004
54237efbb963
Re-arrange msn_session_destroy to avoid use-after-free bugs. I don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24003
diff
changeset
|
81 | |
|
54237efbb963
Re-arrange msn_session_destroy to avoid use-after-free bugs. I don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24003
diff
changeset
|
82 | while (session->switches != NULL) |
|
54237efbb963
Re-arrange msn_session_destroy to avoid use-after-free bugs. I don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24003
diff
changeset
|
83 | msn_switchboard_destroy(session->switches->data); |
|
54237efbb963
Re-arrange msn_session_destroy to avoid use-after-free bugs. I don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24003
diff
changeset
|
84 | |
|
54237efbb963
Re-arrange msn_session_destroy to avoid use-after-free bugs. I don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24003
diff
changeset
|
85 | if (session->oim != NULL) |
|
54237efbb963
Re-arrange msn_session_destroy to avoid use-after-free bugs. I don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24003
diff
changeset
|
86 | msn_oim_destroy(session->oim); |
|
54237efbb963
Re-arrange msn_session_destroy to avoid use-after-free bugs. I don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24003
diff
changeset
|
87 | |
|
54237efbb963
Re-arrange msn_session_destroy to avoid use-after-free bugs. I don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24003
diff
changeset
|
88 | if (session->nexus != NULL) |
|
54237efbb963
Re-arrange msn_session_destroy to avoid use-after-free bugs. I don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24003
diff
changeset
|
89 | msn_nexus_destroy(session->nexus); |
|
54237efbb963
Re-arrange msn_session_destroy to avoid use-after-free bugs. I don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24003
diff
changeset
|
90 | |
|
54237efbb963
Re-arrange msn_session_destroy to avoid use-after-free bugs. I don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24003
diff
changeset
|
91 | if (session->user != NULL) |
|
30944
4f1fc7c401fd
Remove msn_user_destroy in favor of msn_user_unref.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
30929
diff
changeset
|
92 | msn_user_unref(session->user); |
| 5309 | 93 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
94 | if (session->notification != NULL) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
95 | msn_notification_destroy(session->notification); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
96 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
97 | msn_userlist_destroy(session->userlist); |
| 5309 | 98 | |
| 21906 | 99 | g_free(session->psm); |
|
29420
c81c525111db
Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27635
diff
changeset
|
100 | g_free(session->guid); |
|
25614
36aaca179437
Save and use the CacheKey for ABCH SOAP requests.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25612
diff
changeset
|
101 | g_free(session->abch_cachekey); |
|
25612
4ae731d8c3da
Comment out this extra string until we need it (if ever).
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25184
diff
changeset
|
102 | #if 0 |
|
23789
3ef57c5a8d9c
Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23780
diff
changeset
|
103 | g_free(session->blocked_text); |
|
25612
4ae731d8c3da
Comment out this extra string until we need it (if ever).
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25184
diff
changeset
|
104 | #endif |
|
23789
3ef57c5a8d9c
Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23780
diff
changeset
|
105 | |
|
13695
64da09d24cbe
[gaim-migrate @ 16096]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13635
diff
changeset
|
106 | g_free(session->passport_info.sid); |
|
64da09d24cbe
[gaim-migrate @ 16096]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13635
diff
changeset
|
107 | g_free(session->passport_info.mspauth); |
|
64da09d24cbe
[gaim-migrate @ 16096]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13635
diff
changeset
|
108 | g_free(session->passport_info.client_ip); |
|
23924
1f8e75759bf3
Use a URL to open MSN Hotmail inbox instead of a temporary file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23866
diff
changeset
|
109 | g_free(session->passport_info.mail_url); |
|
5427
a45fa07ef20d
[gaim-migrate @ 5806]
Mark Doliner <markdoliner@pidgin.im>
parents:
5354
diff
changeset
|
110 | |
| 5309 | 111 | g_free(session); |
| 112 | } | |
| 113 | ||
| 114 | gboolean | |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
115 | msn_session_connect(MsnSession *session, const char *host, int port, |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
116 | gboolean http_method) |
| 5309 | 117 | { |
| 118 | g_return_val_if_fail(session != NULL, FALSE); | |
| 119 | g_return_val_if_fail(!session->connected, TRUE); | |
| 120 | ||
| 121 | session->connected = TRUE; | |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
122 | session->http_method = http_method; |
| 5309 | 123 | |
|
10463
f2f97738b401
[gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10345
diff
changeset
|
124 | if (session->notification == NULL) |
|
f2f97738b401
[gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10345
diff
changeset
|
125 | { |
| 15884 | 126 | purple_debug_error("msn", "This shouldn't happen\n"); |
|
10463
f2f97738b401
[gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10345
diff
changeset
|
127 | g_return_val_if_reached(FALSE); |
|
f2f97738b401
[gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10345
diff
changeset
|
128 | } |
|
f2f97738b401
[gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10345
diff
changeset
|
129 | |
|
24605
ad3ade4ebb0b
Get rid of an unnecessary if statement, and don't try to unref a
Mark Doliner <markdoliner@pidgin.im>
parents:
24017
diff
changeset
|
130 | return msn_notification_connect(session->notification, host, port); |
| 5309 | 131 | } |
| 132 | ||
| 133 | void | |
| 134 | msn_session_disconnect(MsnSession *session) | |
| 135 | { | |
| 136 | g_return_if_fail(session != NULL); | |
|
20843
6d796c938192
Prevent an assertion (w/ G_DEBUG=fatal_warnings) when the connection drops.
Daniel Atallah <datallah@pidgin.im>
parents:
20658
diff
changeset
|
137 | |
|
6d796c938192
Prevent an assertion (w/ G_DEBUG=fatal_warnings) when the connection drops.
Daniel Atallah <datallah@pidgin.im>
parents:
20658
diff
changeset
|
138 | if (!session->connected) |
|
6d796c938192
Prevent an assertion (w/ G_DEBUG=fatal_warnings) when the connection drops.
Daniel Atallah <datallah@pidgin.im>
parents:
20658
diff
changeset
|
139 | return; |
| 5309 | 140 | |
|
30527
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
141 | if (session->login_timeout) { |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
142 | purple_timeout_remove(session->login_timeout); |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
143 | session->login_timeout = 0; |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
144 | } |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
145 | |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
146 | session->connected = FALSE; |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
147 | |
|
9158
f8dab42adeaf
[gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
8831
diff
changeset
|
148 | while (session->switches != NULL) |
|
10463
f2f97738b401
[gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10345
diff
changeset
|
149 | msn_switchboard_close(session->switches->data); |
| 5309 | 150 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
151 | if (session->notification != NULL) |
|
10463
f2f97738b401
[gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10345
diff
changeset
|
152 | msn_notification_close(session->notification); |
| 5309 | 153 | } |
| 154 | ||
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
155 | /* TODO: This must go away when conversation is redesigned */ |
| 5309 | 156 | MsnSwitchBoard * |
|
10621
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
157 | msn_session_find_swboard(MsnSession *session, const char *username) |
| 5309 | 158 | { |
| 159 | GList *l; | |
| 160 | ||
|
9158
f8dab42adeaf
[gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
8831
diff
changeset
|
161 | g_return_val_if_fail(session != NULL, NULL); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
162 | g_return_val_if_fail(username != NULL, NULL); |
| 5309 | 163 | |
| 8499 | 164 | for (l = session->switches; l != NULL; l = l->next) |
| 165 | { | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
166 | MsnSwitchBoard *swboard; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
167 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
168 | swboard = l->data; |
| 5309 | 169 | |
|
10621
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
170 | if ((swboard->im_user != NULL) && !strcmp(username, swboard->im_user)) |
|
10602
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
171 | return swboard; |
| 5309 | 172 | } |
| 173 | ||
| 174 | return NULL; | |
| 175 | } | |
| 176 | ||
|
34636
cfbdf3297c99
Refactored msn protocol to use GObject-based PurpleConversation
Ankit Vani <a@nevitus.org>
parents:
34627
diff
changeset
|
177 | static PurpleIMConversation * |
|
cfbdf3297c99
Refactored msn protocol to use GObject-based PurpleConversation
Ankit Vani <a@nevitus.org>
parents:
34627
diff
changeset
|
178 | msn_session_get_im(MsnSession *session,const char *passport) |
| 13871 | 179 | { |
|
20478
46933dc62880
propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
diff
changeset
|
180 | PurpleAccount *account; |
|
34636
cfbdf3297c99
Refactored msn protocol to use GObject-based PurpleConversation
Ankit Vani <a@nevitus.org>
parents:
34627
diff
changeset
|
181 | PurpleIMConversation * im; |
| 13871 | 182 | |
| 183 | g_return_val_if_fail(session != NULL, NULL); | |
| 184 | account = session->account; | |
| 185 | ||
|
34636
cfbdf3297c99
Refactored msn protocol to use GObject-based PurpleConversation
Ankit Vani <a@nevitus.org>
parents:
34627
diff
changeset
|
186 | im = purple_conversations_find_im_with_account(passport, account); |
|
cfbdf3297c99
Refactored msn protocol to use GObject-based PurpleConversation
Ankit Vani <a@nevitus.org>
parents:
34627
diff
changeset
|
187 | if(im == NULL){ |
|
cfbdf3297c99
Refactored msn protocol to use GObject-based PurpleConversation
Ankit Vani <a@nevitus.org>
parents:
34627
diff
changeset
|
188 | im = purple_im_conversation_new(account, passport); |
| 13871 | 189 | } |
|
34636
cfbdf3297c99
Refactored msn protocol to use GObject-based PurpleConversation
Ankit Vani <a@nevitus.org>
parents:
34627
diff
changeset
|
190 | return im; |
| 13871 | 191 | } |
| 192 | ||
| 193 | /* put Message to User Conversation | |
| 194 | * | |
| 195 | * passport - the one want to talk to you | |
| 196 | */ | |
| 197 | void | |
|
23802
61305f9c37e1
Make errors when sending OIM's more visible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23789
diff
changeset
|
198 | msn_session_report_user(MsnSession *session,const char *passport,const char *msg,PurpleMessageFlags flags) |
| 13871 | 199 | { |
|
34636
cfbdf3297c99
Refactored msn protocol to use GObject-based PurpleConversation
Ankit Vani <a@nevitus.org>
parents:
34627
diff
changeset
|
200 | PurpleIMConversation * im; |
| 13871 | 201 | |
|
34636
cfbdf3297c99
Refactored msn protocol to use GObject-based PurpleConversation
Ankit Vani <a@nevitus.org>
parents:
34627
diff
changeset
|
202 | if ((im = msn_session_get_im(session,passport)) != NULL){ |
|
36091
bb03db248026
Push two remaining purple_conversation_write_system_message
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35827
diff
changeset
|
203 | purple_conversation_write_system_message( |
|
bb03db248026
Push two remaining purple_conversation_write_system_message
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35827
diff
changeset
|
204 | PURPLE_CONVERSATION(im), msg, flags); |
| 13871 | 205 | } |
| 206 | } | |
| 207 | ||
| 5309 | 208 | MsnSwitchBoard * |
| 15884 | 209 | msn_session_find_swboard_with_conv(MsnSession *session, PurpleConversation *conv) |
|
10621
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
210 | { |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
211 | GList *l; |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
212 | |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
213 | g_return_val_if_fail(session != NULL, NULL); |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
214 | g_return_val_if_fail(conv != NULL, NULL); |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
215 | |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
216 | for (l = session->switches; l != NULL; l = l->next) |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
217 | { |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
218 | MsnSwitchBoard *swboard; |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
219 | |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
220 | swboard = l->data; |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
221 | |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
222 | if (swboard->conv == conv) |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
223 | return swboard; |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
224 | } |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
225 | |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
226 | return NULL; |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
227 | } |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
228 | |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
229 | MsnSwitchBoard * |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
230 | msn_session_find_swboard_with_id(const MsnSession *session, int chat_id) |
| 5309 | 231 | { |
| 232 | GList *l; | |
| 233 | ||
| 234 | g_return_val_if_fail(session != NULL, NULL); | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
235 | g_return_val_if_fail(chat_id >= 0, NULL); |
| 5309 | 236 | |
|
9158
f8dab42adeaf
[gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
8831
diff
changeset
|
237 | for (l = session->switches; l != NULL; l = l->next) |
|
f8dab42adeaf
[gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
8831
diff
changeset
|
238 | { |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
239 | MsnSwitchBoard *swboard; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
240 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
241 | swboard = l->data; |
| 5309 | 242 | |
|
10621
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
243 | if (swboard->chat_id == chat_id) |
| 5309 | 244 | return swboard; |
| 245 | } | |
| 246 | ||
| 247 | return NULL; | |
| 248 | } | |
| 249 | ||
| 250 | MsnSwitchBoard * | |
|
10773
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10751
diff
changeset
|
251 | msn_session_get_swboard(MsnSession *session, const char *username, |
|
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10751
diff
changeset
|
252 | MsnSBFlag flag) |
| 5309 | 253 | { |
| 254 | MsnSwitchBoard *swboard; | |
| 255 | ||
|
13635
dcbce56b7713
[gaim-migrate @ 16032]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11992
diff
changeset
|
256 | g_return_val_if_fail(session != NULL, NULL); |
|
dcbce56b7713
[gaim-migrate @ 16032]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11992
diff
changeset
|
257 | |
|
10621
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
258 | swboard = msn_session_find_swboard(session, username); |
| 5309 | 259 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
260 | if (swboard == NULL) |
|
9158
f8dab42adeaf
[gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
8831
diff
changeset
|
261 | { |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
262 | swboard = msn_switchboard_new(session); |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10112
diff
changeset
|
263 | swboard->im_user = g_strdup(username); |
|
32008
56d1c64759d6
Fix a crash when the account is disconnected and we have requested a SB. (Hanzz, ported by shlomif)(Fixes #12431)
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31994
diff
changeset
|
264 | if (msn_switchboard_request(swboard)) |
|
56d1c64759d6
Fix a crash when the account is disconnected and we have requested a SB. (Hanzz, ported by shlomif)(Fixes #12431)
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31994
diff
changeset
|
265 | msn_switchboard_request_add_user(swboard, username); |
|
56d1c64759d6
Fix a crash when the account is disconnected and we have requested a SB. (Hanzz, ported by shlomif)(Fixes #12431)
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31994
diff
changeset
|
266 | else |
|
56d1c64759d6
Fix a crash when the account is disconnected and we have requested a SB. (Hanzz, ported by shlomif)(Fixes #12431)
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
31994
diff
changeset
|
267 | return NULL; |
| 5309 | 268 | } |
| 269 | ||
|
10773
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10751
diff
changeset
|
270 | swboard->flag |= flag; |
|
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10751
diff
changeset
|
271 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9158
diff
changeset
|
272 | return swboard; |
| 5309 | 273 | } |
|
10044
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
274 | |
|
30527
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
275 | static gboolean |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
276 | msn_login_timeout_cb(gpointer data) |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
277 | { |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
278 | MsnSession *session = data; |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
279 | /* This forces the login process to finish, even though we haven't heard |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
280 | a response for our FQY requests yet. We'll at least end up online to the |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
281 | people we've already added. The rest will follow later. */ |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
282 | msn_session_finish_login(session); |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
283 | session->login_timeout = 0; |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
284 | return FALSE; |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
285 | } |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
286 | |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
287 | void |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
288 | msn_session_activate_login_timeout(MsnSession *session) |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
289 | { |
|
30716
422e72266bd5
Fix a possible crash reported by HanzZ. Fix thanks to HanzZ also.
Jan Kaluza <hanzz.k@gmail.com>
parents:
30579
diff
changeset
|
290 | if (!session->logged_in && session->connected) { |
|
31994
06a7154ee8dd
Don't accidentally add a second login timeout. This shouldn't happen
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
31482
diff
changeset
|
291 | if (session->login_timeout) |
|
06a7154ee8dd
Don't accidentally add a second login timeout. This shouldn't happen
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
31482
diff
changeset
|
292 | purple_timeout_remove(session->login_timeout); |
|
30527
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
293 | session->login_timeout = |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
294 | purple_timeout_add_seconds(MSN_LOGIN_FQY_TIMEOUT, |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
295 | msn_login_timeout_cb, session); |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
296 | } |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
297 | } |
|
1f37f8bc501a
Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30525
diff
changeset
|
298 | |
|
10044
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
299 | static void |
|
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
300 | msn_session_sync_users(MsnSession *session) |
|
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
301 | { |
| 15884 | 302 | PurpleConnection *gc = purple_account_get_connection(session->account); |
|
23090
9a987bea8364
Make MSN buddy list synchronization more forgiving, only ask about
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22164
diff
changeset
|
303 | GList *to_remove = NULL; |
|
27199
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
304 | GSList *buddies; |
|
10044
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
305 | |
|
11992
906176cc9b22
[gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11303
diff
changeset
|
306 | g_return_if_fail(gc != NULL); |
|
10044
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
307 | |
|
11992
906176cc9b22
[gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11303
diff
changeset
|
308 | /* The core used to use msn_add_buddy to add all buddies before |
|
906176cc9b22
[gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11303
diff
changeset
|
309 | * being logged in. This no longer happens, so we manually iterate |
|
20658
91594d39738c
Clear the password consistently when we get a "Signed-On elsewhere" or a "Invalid Password" disconnection. Disconnection reason codes will take care of this in the core, but until then, this is ok. Fixes #3204.
Daniel Atallah <datallah@pidgin.im>
parents:
20597
diff
changeset
|
310 | * over the whole buddy list to identify sync issues. |
| 13899 | 311 | */ |
|
34728
8efd73063ecf
Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents:
34640
diff
changeset
|
312 | for (buddies = purple_blist_find_buddies(session->account, NULL); buddies; |
|
27199
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
313 | buddies = g_slist_delete_link(buddies, buddies)) { |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
314 | PurpleBuddy *buddy = buddies->data; |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
315 | const gchar *buddy_name = purple_buddy_get_name(buddy); |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
316 | const gchar *group_name = purple_group_get_name(purple_buddy_get_group(buddy)); |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
317 | MsnUser *remote_user; |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
318 | gboolean found = FALSE; |
|
10044
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
319 | |
|
27199
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
320 | remote_user = msn_userlist_find_user(session->userlist, buddy_name); |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
321 | if (remote_user && remote_user->list_op & MSN_LIST_FL_OP) { |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
322 | GList *l; |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
323 | for (l = remote_user->group_ids; l; l = l->next) { |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
324 | const char *name = msn_userlist_find_group_name(remote_user->userlist, l->data); |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
325 | if (name && !g_ascii_strcasecmp(group_name, name)) { |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
326 | found = TRUE; |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
327 | break; |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
328 | } |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
329 | } |
|
10044
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
330 | |
|
27199
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
331 | /* We don't care if they're in a different group, as long as they're on the |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
332 | * list somewhere. If we check for the group, we cause pain, agony and |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
333 | * suffering for people who decide to re-arrange their buddy list elsewhere. |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
334 | */ |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
335 | if (!found) { |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
336 | if ((remote_user == NULL) || !(remote_user->list_op & MSN_LIST_FL_OP)) { |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
337 | /* The user is not on the server list */ |
|
30911
e0a4f4418d83
msn: Merge dialog and error to get an unified msn_error api.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
29447
diff
changeset
|
338 | msn_error_sync_issue(session, buddy_name, group_name); |
|
27199
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
339 | } else { |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
340 | /* The user is not in that group on the server list */ |
|
ab2af9d15cba
Use purple_find_buddies() instead of iterating the buddy list.
Paul Aurich <darkrain42@pidgin.im>
parents:
26726
diff
changeset
|
341 | to_remove = g_list_prepend(to_remove, buddy); |
|
10044
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
342 | } |
|
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
343 | } |
|
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
344 | } |
|
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
345 | } |
|
23090
9a987bea8364
Make MSN buddy list synchronization more forgiving, only ask about
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22164
diff
changeset
|
346 | |
|
9a987bea8364
Make MSN buddy list synchronization more forgiving, only ask about
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22164
diff
changeset
|
347 | if (to_remove != NULL) { |
|
9a987bea8364
Make MSN buddy list synchronization more forgiving, only ask about
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22164
diff
changeset
|
348 | g_list_foreach(to_remove, (GFunc)purple_blist_remove_buddy, NULL); |
|
23092
7e1f02514b9c
unleak (thanks sadrul!)
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
23090
diff
changeset
|
349 | g_list_free(to_remove); |
|
23090
9a987bea8364
Make MSN buddy list synchronization more forgiving, only ask about
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22164
diff
changeset
|
350 | } |
|
10044
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
351 | } |
|
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
352 | |
|
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
353 | void |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
354 | msn_session_set_error(MsnSession *session, MsnErrorType error, |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
355 | const char *info) |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
356 | { |
| 15884 | 357 | PurpleConnection *gc; |
| 21279 | 358 | PurpleConnectionError reason; |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
359 | char *msg; |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
360 | |
|
24003
0676aec9bb8e
Don't try to report a connection error if the MSN session is being
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23924
diff
changeset
|
361 | if (session->destroying) |
|
0676aec9bb8e
Don't try to report a connection error if the MSN session is being
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23924
diff
changeset
|
362 | return; |
|
0676aec9bb8e
Don't try to report a connection error if the MSN session is being
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23924
diff
changeset
|
363 | |
| 15884 | 364 | gc = purple_account_get_connection(session->account); |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
365 | |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
366 | switch (error) |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
367 | { |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
368 | case MSN_ERROR_SERVCONN: |
| 21279 | 369 | reason = PURPLE_CONNECTION_ERROR_NETWORK_ERROR; |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
370 | msg = g_strdup(info); |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
371 | break; |
|
10519
80801a34a246
[gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10514
diff
changeset
|
372 | case MSN_ERROR_UNSUPPORTED_PROTOCOL: |
| 21279 | 373 | reason = PURPLE_CONNECTION_ERROR_NETWORK_ERROR; |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
374 | msg = g_strdup(_("Our protocol is not supported by the " |
|
27635
0cd19038c417
More uniformity among disconnect error messages
Mark Doliner <markdoliner@pidgin.im>
parents:
27199
diff
changeset
|
375 | "server")); |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
376 | break; |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
377 | case MSN_ERROR_HTTP_MALFORMED: |
| 21279 | 378 | reason = PURPLE_CONNECTION_ERROR_NETWORK_ERROR; |
|
27635
0cd19038c417
More uniformity among disconnect error messages
Mark Doliner <markdoliner@pidgin.im>
parents:
27199
diff
changeset
|
379 | msg = g_strdup(_("Error parsing HTTP")); |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
380 | break; |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
381 | case MSN_ERROR_SIGN_OTHER: |
| 21279 | 382 | reason = PURPLE_CONNECTION_ERROR_NAME_IN_USE; |
|
27635
0cd19038c417
More uniformity among disconnect error messages
Mark Doliner <markdoliner@pidgin.im>
parents:
27199
diff
changeset
|
383 | msg = g_strdup(_("You have signed on from another location")); |
|
20658
91594d39738c
Clear the password consistently when we get a "Signed-On elsewhere" or a "Invalid Password" disconnection. Disconnection reason codes will take care of this in the core, but until then, this is ok. Fixes #3204.
Daniel Atallah <datallah@pidgin.im>
parents:
20597
diff
changeset
|
384 | if (!purple_account_get_remember_password(session->account)) |
|
34029
059c1270db1f
Remove the silly destroy argument from purple_account_set_password and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34028
diff
changeset
|
385 | purple_account_set_password(session->account, NULL, NULL, NULL); |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
386 | break; |
|
10568
15f02c0e7fc1
[gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10533
diff
changeset
|
387 | case MSN_ERROR_SERV_UNAVAILABLE: |
| 21279 | 388 | reason = PURPLE_CONNECTION_ERROR_NETWORK_ERROR; |
|
10568
15f02c0e7fc1
[gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10533
diff
changeset
|
389 | msg = g_strdup(_("The MSN servers are temporarily " |
|
15f02c0e7fc1
[gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10533
diff
changeset
|
390 | "unavailable. Please wait and try " |
|
15f02c0e7fc1
[gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10533
diff
changeset
|
391 | "again.")); |
|
15f02c0e7fc1
[gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10533
diff
changeset
|
392 | break; |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
393 | case MSN_ERROR_SERV_DOWN: |
| 21279 | 394 | reason = PURPLE_CONNECTION_ERROR_NETWORK_ERROR; |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
395 | msg = g_strdup(_("The MSN servers are going down " |
|
27635
0cd19038c417
More uniformity among disconnect error messages
Mark Doliner <markdoliner@pidgin.im>
parents:
27199
diff
changeset
|
396 | "temporarily")); |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
397 | break; |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
398 | case MSN_ERROR_AUTH: |
| 21279 | 399 | reason = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED; |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
400 | msg = g_strdup_printf(_("Unable to authenticate: %s"), |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
401 | (info == NULL ) ? |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
402 | _("Unknown error") : info); |
|
30525
09042ad2f660
Clear the password on an MSN account if saving is disabled and the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30059
diff
changeset
|
403 | /* Clear the password if it isn't being saved */ |
|
09042ad2f660
Clear the password on an MSN account if saving is disabled and the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30059
diff
changeset
|
404 | if (!purple_account_get_remember_password(session->account)) |
|
34029
059c1270db1f
Remove the silly destroy argument from purple_account_set_password and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34028
diff
changeset
|
405 | purple_account_set_password(session->account, NULL, NULL, NULL); |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
406 | break; |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
407 | case MSN_ERROR_BAD_BLIST: |
| 21279 | 408 | reason = PURPLE_CONNECTION_ERROR_NETWORK_ERROR; |
|
36251
ee51d84aacbf
msn: Hard fail if buddy list is unavailable.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32091
diff
changeset
|
409 | msg = g_strdup_printf(_("Your MSN buddy list is temporarily " |
|
ee51d84aacbf
msn: Hard fail if buddy list is unavailable.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32091
diff
changeset
|
410 | "unavailable: %s"), |
|
36265
26ad8040bdb4
Typo ("Unknorn error" -> "Unknown error")
Bjoern Voigt <bjoern@cs.tu-berlin.de>
parents:
36251
diff
changeset
|
411 | (info == NULL) ? _("Unknown error") : info); |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
412 | break; |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
413 | default: |
| 21279 | 414 | reason = PURPLE_CONNECTION_ERROR_NETWORK_ERROR; |
|
27635
0cd19038c417
More uniformity among disconnect error messages
Mark Doliner <markdoliner@pidgin.im>
parents:
27199
diff
changeset
|
415 | msg = g_strdup(_("Unknown error")); |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
416 | break; |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
417 | } |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
418 | |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
419 | msn_session_disconnect(session); |
|
10533
4c2ad22fad20
[gaim-migrate @ 11862]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10519
diff
changeset
|
420 | |
|
32157
39ba2e2492ee
Rename purple_connection_error_reason to purple_connection_error
Mark Doliner <markdoliner@pidgin.im>
parents:
32008
diff
changeset
|
421 | purple_connection_error(gc, reason, msg); |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
422 | |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
423 | g_free(msg); |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
424 | } |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
425 | |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
426 | static const char * |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
427 | get_login_step_text(MsnSession *session) |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
428 | { |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
429 | const char *steps_text[] = { |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
430 | _("Connecting"), |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
431 | _("Handshaking"), |
|
10514
3d6cb5d53e97
[gaim-migrate @ 11814]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10504
diff
changeset
|
432 | _("Transferring"), |
|
3d6cb5d53e97
[gaim-migrate @ 11814]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10504
diff
changeset
|
433 | _("Handshaking"), |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
434 | _("Starting authentication"), |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
435 | _("Getting cookie"), |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
436 | _("Authenticating"), |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
437 | _("Sending cookie"), |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
438 | _("Retrieving buddy list") |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
439 | }; |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
440 | |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
441 | return steps_text[session->login_step]; |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
442 | } |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
443 | |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
444 | void |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
445 | msn_session_set_login_step(MsnSession *session, MsnLoginStep step) |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
446 | { |
| 15884 | 447 | PurpleConnection *gc; |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
448 | |
|
10519
80801a34a246
[gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10514
diff
changeset
|
449 | /* Prevent the connection progress going backwards, eg. if we get |
|
80801a34a246
[gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10514
diff
changeset
|
450 | * transferred several times during login */ |
|
30059
494d4fe51606
Don't bother updating the login progress if the step didn't change
Mark Doliner <markdoliner@pidgin.im>
parents:
27635
diff
changeset
|
451 | if (session->login_step >= step) |
|
10519
80801a34a246
[gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10514
diff
changeset
|
452 | return; |
|
80801a34a246
[gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10514
diff
changeset
|
453 | |
|
80801a34a246
[gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10514
diff
changeset
|
454 | /* If we're already logged in, we're probably here because of a |
|
80801a34a246
[gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10514
diff
changeset
|
455 | * mid-session XFR from the notification server, so we don't want to |
|
80801a34a246
[gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10514
diff
changeset
|
456 | * popup the connection progress dialog */ |
|
80801a34a246
[gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10514
diff
changeset
|
457 | if (session->logged_in) |
|
80801a34a246
[gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10514
diff
changeset
|
458 | return; |
|
80801a34a246
[gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10514
diff
changeset
|
459 | |
|
32438
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32157
diff
changeset
|
460 | gc = purple_account_get_connection(session->account); |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
461 | |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
462 | session->login_step = step; |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
463 | |
| 15884 | 464 | purple_connection_update_progress(gc, get_login_step_text(session), step, |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
465 | MSN_LOGIN_STEPS); |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
466 | } |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
467 | |
|
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10463
diff
changeset
|
468 | void |
|
10044
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
469 | msn_session_finish_login(MsnSession *session) |
|
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
470 | { |
| 15884 | 471 | PurpleAccount *account; |
| 472 | PurpleConnection *gc; | |
|
35827
c7c855c36c9b
imgstore: unref msn
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34870
diff
changeset
|
473 | PurpleImage *img; |
|
10044
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
474 | |
|
25184
e984d431ddca
Actually that last change did break regular login, but I don't feel like
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25182
diff
changeset
|
475 | if (!session->logged_in) { |
|
e984d431ddca
Actually that last change did break regular login, but I don't feel like
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25182
diff
changeset
|
476 | account = session->account; |
|
e984d431ddca
Actually that last change did break regular login, but I don't feel like
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25182
diff
changeset
|
477 | gc = purple_account_get_connection(account); |
|
10044
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
478 | |
|
25184
e984d431ddca
Actually that last change did break regular login, but I don't feel like
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25182
diff
changeset
|
479 | img = purple_buddy_icons_find_account_icon(session->account); |
|
e984d431ddca
Actually that last change did break regular login, but I don't feel like
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25182
diff
changeset
|
480 | /* TODO: Do we really want to call this if img is NULL? */ |
|
e984d431ddca
Actually that last change did break regular login, but I don't feel like
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25182
diff
changeset
|
481 | msn_user_set_buddy_icon(session->user, img); |
|
e984d431ddca
Actually that last change did break regular login, but I don't feel like
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25182
diff
changeset
|
482 | if (img != NULL) |
|
35827
c7c855c36c9b
imgstore: unref msn
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34870
diff
changeset
|
483 | g_object_unref(img); |
|
10044
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
484 | |
|
25184
e984d431ddca
Actually that last change did break regular login, but I don't feel like
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25182
diff
changeset
|
485 | session->logged_in = TRUE; |
|
34746
dc9c911dbd35
Started GObjectification of PurpleConnection.
Ankit Vani <a@nevitus.org>
parents:
34728
diff
changeset
|
486 | purple_connection_set_state(gc, PURPLE_CONNECTION_CONNECTED); |
|
10908
15694532c3c6
[gaim-migrate @ 12640]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10773
diff
changeset
|
487 | |
|
25184
e984d431ddca
Actually that last change did break regular login, but I don't feel like
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25182
diff
changeset
|
488 | /* Sync users */ |
|
e984d431ddca
Actually that last change did break regular login, but I don't feel like
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25182
diff
changeset
|
489 | msn_session_sync_users(session); |
|
e984d431ddca
Actually that last change did break regular login, but I don't feel like
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25182
diff
changeset
|
490 | } |
|
10044
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
491 | |
|
32091
5061380d9fee
Pluck all MSNP18 changes. This is pretty much to fix sending OIMs.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32008
diff
changeset
|
492 | /* TODO: Send this when updating status instead? */ |
|
5061380d9fee
Pluck all MSNP18 changes. This is pretty much to fix sending OIMs.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32008
diff
changeset
|
493 | msn_notification_send_uux_endpointdata(session); |
|
5061380d9fee
Pluck all MSNP18 changes. This is pretty much to fix sending OIMs.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32008
diff
changeset
|
494 | msn_notification_send_uux_private_endpointdata(session); |
|
5061380d9fee
Pluck all MSNP18 changes. This is pretty much to fix sending OIMs.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32008
diff
changeset
|
495 | |
|
25184
e984d431ddca
Actually that last change did break regular login, but I don't feel like
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25182
diff
changeset
|
496 | msn_change_status(session); |
|
10044
884c09b189e6
[gaim-migrate @ 11003]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9198
diff
changeset
|
497 | } |
|
20473
91e1b3a49d10
msn.tgz from SF Patch #1621854 from Ka-Hing Cheung
Ka-Hing Cheung <khc@pidgin.im>
parents:
20472
diff
changeset
|
498 |